[
  {
    "path": "AUTHORS",
    "content": "Project Founder and Lead Developer: John Benediktsson (https://github.com/mrjbq7)\nAbstract Interface Author and Maintainer: Brian Cappello (https://github.com/briancappello)\n"
  },
  {
    "path": "CHANGELOG",
    "content": "0.6.9\n=====\n\n- [NEW]: Upgrade to Cython 3.2.4\n\n- [FIX]: Adding ACCBANDS, AVGDEV, IMI to get_func_groups()\n\n- [FIX]: Adding ACCBANDS, AVGDEV, IMI to docs pages\n\n- [NEW]: Adding an ``abstract.pyi`` for typing\n\n0.6.8\n=====\n\n- [FIX]: Remove accidental cython dependency.\n\n- [NEW]: Upgrade to Cython 3.1.5\n\n- [NEW]: Release binaries for Python 3.14\n\n0.6.7\n=====\n\n- [NEW]: Upgrade to Cython 3.1.3\n\n- [FIX]: Include .pxd files in the source .tar.gz\n\n- [FIX]: Don't require pip, it's not needed\n\n- [FIX]: Add back some import compat for backtrader\n\n0.6.6\n=====\n\n- [FIX]: Silence project.license warnings when building.\n\n- [FIX]: Fix regression in abstract function parameters not coercing integers\n\n0.6.5\n=====\n\n- [FIX]: Support PEP-517 style installation\n\n- [NEW]: Upgrade to Cython 3.1.2\n\n- [NEW]: Build binary wheels for Windows, macOS, and Linux.\n\n0.6.4\n=====\n\n- [FIX]: Adding typed for ACCBANDS, AVGDEV, IMI, and stream_* functions\n\n- [FIX]: Fix for numpy 2.3.0, which removed the npy_1_7_deprecated_api\n\n0.6.3\n=====\n\n- [FIX]: Fix issue building against numpy2\n\n0.6.2\n=====\n\n- [NEW]: Adding indicators ACCBANDS, AVGDEV, IMI\n\n0.6.1\n=====\n\n- [FIX]: Build properly against TA-Lib 0.6.2 and newer on Windows.\n\n0.6.0\n=====\n\n- [FIX]: Make sure this wrapper works with TA-Lib 0.6.1 and newer releases.\n\n0.5.5\n=====\n\n- [FIX]: Fix for numpy 2.3.0, which removed the npy_1_7_deprecated_api\n\n0.5.4\n=====\n\n- [FIX]: Fix lib name on windows.\n\n0.5.3\n=====\n\n- [BUG]: Make this release only support TA-Lib 0.4.0.\n\n0.5.2\n=====\n\n- [NEW]: Provide py typed information for C wrapper\n\n- [FIX]: Make sure this wrapper works with TA-Lib 0.6.1\n\n0.5.1\n=====\n\n- [FIX]: include cython *.pxi files in the source tar.gz\n\n0.5.0\n=====\n\n- [NEW]: Upgrade to Numpy 2.0\n\n0.4.38\n======\n\n- [FIX]: Fix lib name on windows.\n\n0.4.37\n======\n\n- [FIX]: Make sure to pin numpy<2 in the setup.py.\n\n0.4.36\n======\n\n- [BUG]: Make this release only support TA-Lib 0.4.0\n\n0.4.35\n======\n\n- [FIX]: Make sure this wrapper works with TA-Lib 0.6.1\n\n0.4.34\n=====\n\n- [FIX]: include cython *.pxi files in the source tar.gz\n\n0.4.33\n======\n\n- [NEW]: Upgrade to Cython 3.0.11\n\n- [FIX]: Fix import of ``pandas`` and ``polars`` to throw underlying import errors\n\n0.4.32\n======\n\n- [FIX]: Make sure numpy<2 is in the requirements.txt\n\n0.4.31\n======\n\n- [FIX]: Fix build issue with numpy2 released by requiring numpy<2.0.0 for now\n\n0.4.30\n======\n\n- [FIX]: Fix the C library imports to work again on Windows, oops.\n\n0.4.29\n======\n\n- [NEW]: Upgrade to Cython 3.0.10\n\n- [FIX]: Make TA_INCLUDE_PATH and TA_LIBRARY_PATH override default search list\n\n- [FIX]: Silent some compiler warnings about const pointers\n\n0.4.28\n======\n\n- [NEW]: Upgrade to Cython 3.0.0\n\n- [FIX]: Use embedsignature to enable code completions?\n\n0.4.27\n======\n\n- [NEW]: Upgrade to Cython 0.29.36\n\n- [FIX]: Fix abstract info to keep values doubles when they are (e.g., nbdevup, nvdevdn)\n\n- [FIX]: Don't throw exceptions when inputs are all NaN\n\n0.4.26\n======\n\n- [NEW]: Upgrade to Cython 0.29.34\n\n- [NEW]: Moved to https://github.com/ta-lib/ta-lib-python\n\n- [FIX]: Fix deprecation warning for polars.DataFrame(columns=[...])\n\n0.4.25\n======\n\n- [NEW]: Upgrade to Cython 0.29.32\n\n- [FIX]: Allow Abstract API to be safely used with multithreading\n\n0.4.24\n======\n\n- [FIX]: runtime_lib_dirs preventing install on Windows\n\n0.4.23\n======\n\n- [NEW]: Upgrade to Cython 0.29.25\n\n- [NEW]: Allow TA_INCLUDE_PATH and TA_LIBRARY_PATH to work on Windows.\n\n- [FIX]: Remove pyproject.toml which was preventing some installs.\n\n0.4.22\n======\n\n- [NEW]: Upgrade to Cython 0.29.24\n\n- [NEW]: Support polars.Series in Function API\n\n- [NEW]: Support polars.Series in Streaming API\n\n- [NEW]: Support polars.DataFrame in Abstract API\n\n- [NEW]: Switch tests to pytest from nose (no longer supported).\n\n0.4.21\n======\n\n- [FIX]: Fixed {MIN/MAX/MINMAX}INDEX functions to return correct indices.\n\n0.4.20\n======\n\n- [NEW]: Upgrade to Cython 0.29.23\n\n- [FIX]: Fix Homebrew directory on Apple M1 devices\n\n0.4.19\n======\n\n- [NEW]: Upgrade to Cython 0.29.20\n\n- [NEW]: from talib import * (imports all func and stream)\n\n- [FIX]: missing method signatures in PyCharm\n\n0.4.18\n======\n\n- [NEW]: Upgrade to Cython 0.29.17\n\n- [NEW]: Support TA_SetCompatibility\n\n- [NEW]: Reduce size of generated C file and memory requirements to compile it.\n\n- [FIX]: Fixed caching input price series in Abstract API\n\n- [NEW]: Support pandas.Series in Streaming API\n\n0.4.17\n======\n\n- [NEW]: Support pandas.Series in Function API\n\n0.4.16\n======\n\n- [FIX]: Fix incorrect C header include on Windows.\n\n0.4.15\n======\n\n- [FIX]: Import TA_FUNC_FLAGS, TA_INPUT_FLAGS, TA_OUTPUT_FLAGS into\n         talib.abstract to support backwards compatibility for backtrader\n\n0.4.14\n======\n\n- [NEW]: Upgrade to Cython 0.27.3\n\n- [NEW]: Add support for set/restore candle settings\n\n- [DOC]: Note Function API only supports numpy.ndarray (not pandas.Series)\n\n- [NEW]: Continuous integration using Travis on Python 2.7, 3.4, 3.5, 3.6\n\n- [NEW]: Merge common, func, abstract, stream as pxi to _ta_lib.pyx\n\n- [DOC]: Update documentation to warn about unstable functions\n\n0.4.10\n======\n\n- [NEW]: Upgrade to Cython 0.23.4.\n\n- [NEW]: Adding an experimental Streaming API (talib.stream).\n\n- [NEW]: Support for \"sunos\"\n\n- [FIX]: Fix issue initializing library for use with candlestick functions.\n\n- [NEW]: Support for TA_SetUnstablePeriod and TA_GetUnstablePeriod\n\n0.4.9\n=====\n\n- [NEW]: Support for python 2.6 and earlier for ordereddict.\n\n- [FIX]: Add lib64 paths to setup.py.\n\n- [NEW]: Upgrade to Cython 0.22.\n\n- [FIX]: Allow running setup.py without numpy or cython\n\n- [NEW]: Allow TA_LIBRARY_PATH and TA_INCLUDE_PATH environment variables.\n\n0.4.8\n=====\n\n- [NEW]: Support pandas.Series and pandas.Dataframe inputs.\n\n- [FIX]: Simple check to warn if ta-lib library is not installed\n\n- [FIX]: Fix missing key error when inputs are not default names.\n\n- [NEW]: Upgrade to Cython 0.20.\n\n- [FIX]: Check all input array lengths are same.\n\n- [FIX]: Check all input arrays for NaN elements.\n\n0.4.7\n=====\n\n- [NEW]: Upgrade to Cython 0.19.1.\n\n- [FIX]: Fix \"periods\" input arrays in abstract interface.\n\n- [FIX]: Only require necessary input arrays in abstract interface.\n\n0.4.6\n=====\n\n- [NEW]: Support for function_flags and output_flags properties in Functions\n\n0.4.5\n=====\n\n- [NEW]: Better test coverage of abstract interface.\n\n- [NEW]: Support for Python 3.\n\n0.4.4\n=====\n\n- [FIX]: Make installation on Windows easier.\n\n0.4.3\n=====\n\n- [NEW]: Upgrade to Cython 0.18.\n\n- [FIX]: Improve docstrings for indicators in talib.func.\n\n- [FIX]: Initialize and shutdown underlying TA-Lib only once each process.\n  This should give slight speedups when using many indicators (<5%).\n\n- [DEPRECATED]: The old moving average types that were in talib.func are now\n  deprecated. See the next bullet item for the replacement, or you can\n  continue using them with \"from talib import deprecated\" for the time being.\n\n- [NEW]: The new moving average types are in talib.MA_Type. It's a class with SMA,\n  EMA, DEMA, etc attribute variables you should now use. Human-readable lookups\n  are also possible by using MA_Type as a dict e.g.:\n\n    MA_Type[MA_Type.SMA] # returns \"Simple Moving Average\"\n\n- [NEW]: In addition to the existing func interface, we now provide an\n  enhanced abstract interface too. Functions in \"import talib\" use the\n  original interface, or you can use \"from talib import abstract\" for\n  the full abstract interface. See the README, tools/example.py and\n  tests/abstract_test.py for more information. The full (commented)\n  source code is mostly located in talib/abstract.pyx. The basic usage is very\n  similar:\n\n    input_arrays = { 'open': np.random.random(100),\n                     'high': np.random.random(100),\n                     'low': np.random.random(100),\n                     'close': np.random.random(100),\n                     'volume': np.random.random(100) }\n    ema_20 = abstract.Function('ema', input_arrays, 20).outputs # function names not case-sensitive\n    slowd, slowk = abstract.Function('STOCH')(input_arrays, 15, 3, 0, 3, 0)\n    upper, middle, lower = abstract.Function('bbands')(input_arrays, timeperiod=20)\n\n0.4.2\n=====\n\n- Move the functions into ``talib.func``, to prepare for ``talib.abstract``\n  in a future release.\n\n0.4.1\n=====\n\n- Support for MacPorts.\n- Fix for FreeBSD.\n\n0.4.0\n=====\n\nFirst version.\n"
  },
  {
    "path": "CITATION.cff",
    "content": "cff-version: 1.2.0\nmessage: \"If you use this software, please cite it as below.\"\ntitle: ta-lib-python\nversion: 0.6.5\ndate-released: 2025-08-07\nurl: \"https://github.com/ta-lib/ta-lib-python\"\ntype: software\nauthors:\n  - given-names: John\n    family-names: Benediktsson\n    email: mrjbq7@gmail.com\n"
  },
  {
    "path": "COPYRIGHT",
    "content": "Copyright (C) 2012-2013 Silfur Capital, LLC. All Rights Reserved.\nThe contents of talib/abstract.pyx are Copyright (c) 2013 Brian A Cappello. All Rights Reserved.\n"
  },
  {
    "path": "DEVELOPMENT",
    "content": "To get started developing on talib, clone the latest code from git and\ninstall:\n\n```\n$ git clone git://github.com/ta-lib/ta-lib-python.git\n$ cd ta-lib-python\n# you can run \"git pull\" here (no quotes) to update the sources in the future\n$ make build\n$ [sudo] make install\n```\n\nHere's the full list of make commands (see the Makefile file):\n\nmake build     # builds and places libs in the project directory; required for testing\nmake clean     # cleans the local build files\nmake install   # installs talib system-wide\nmake generate: # generates a fresh _func.pxi, _stream.pxi file. Requires talib and TA-Lib to both be installed\nmake perf      # run performance profiling\nmake test      # run tests\n\nThe source code is comprised of one python package, located in the talib\ndirectory, which itself has one Cython module (_ta_lib) which consists of\nfour parts: _common, _func, _abstract and _stream.\n\ntalib/_common.pxi\n  An internal-use file for functionality shared between func and abstract.\n\ntalib/_func.pxi\n  This file is generated automatically by tools/generate_func.py and any changes made\n  to it directly will get overwritten!\n\ntalib/_abstract.pxi\n  This file contains the code for interfacing with the TA-Lib abstract interface\n  and wrapping it into a pythonic Function class.\n\ntalib/_ta_lib.pyx\n  This \"Cython header file\" defines the C-level functions, variables and types we\n  need to use in the above pyx files.\n\ntalib/_stream.pxi\n  This file contains code for interfacing a \"streaming\" interface to TA-Lib.\n\ntools/generate_func.py,generate_stream.py\n  Scripts that generate and print _func.pxi or _stream.pxi to stdout. Gets information\n  about all functions from the C headers of the installed TA-Lib.\n\nIf you are interested in developing new indicator functions or whatnot on\nthe underlying TA-Lib, you must install TA-Lib from git.\n"
  },
  {
    "path": "Dockerfile",
    "content": "# Dockerfile for TA-Lib. To build:\n#\n#    docker build --rm -t talib .\n#\n# To run:\n#\n#    docker run --rm -it talib bash\n#\n\nARG PYTHON_VERSION=\"3.7\"\n\nFROM python:$PYTHON_VERSION as builder\n\nENV TA_PREFIX=\"/opt/ta-lib-core\"\nENV TA_LIBRARY_PATH=\"$TA_PREFIX/lib\" \\\n    TA_INCLUDE_PATH=\"$TA_PREFIX/include\"\n\nWORKDIR /src/ta-lib-core\nRUN apt-get update && apt-get install -y \\\n        gfortran \\\n        libfreetype6-dev \\\n        libhdf5-dev \\\n        liblapack-dev \\\n        libopenblas-dev \\\n        libpng-dev \\\n    && rm -rf /var/lib/apt/lists/* \\\n    && curl -fsSL http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz \\\n    | tar xvz --strip-components 1 \\\n    && ./configure --prefix=\"$TA_PREFIX\" \\\n    && make \\\n    && make install\n\nWORKDIR /src/ta-lib-python\nCOPY . .\nRUN python -m pip install -e . \\\n    && python -c 'import numpy, talib; close = numpy.random.random(100); output = talib.SMA(close); print(output)' \\\n    && python -m pip wheel --wheel-dir wheels .\n\nARG RUN_TESTS=\"1\"\nRUN if [ \"$RUN_TESTS\" -ne \"0\" ]; then \\\n        python -m pip install -r requirements_test.txt \\\n        && pytest . ; \\\n    else \\\n        echo \"Skipping tests\\n\" ; \\\n    fi\n\n# Build final image.\nFROM python:$PYTHON_VERSION-slim\nCOPY --from=builder /src/ta-lib-python/wheels /opt/ta-lib-python/wheels\nCOPY --from=builder /opt/ta-lib-core /opt/ta-lib-core\nRUN python -m pip install --no-cache-dir /opt/ta-lib-python/wheels/*.whl \\\n    && python -c 'import numpy, talib; close = numpy.random.random(100); output = talib.SMA(close); print(output)'\n"
  },
  {
    "path": "LICENSE",
    "content": "# BSD 2-Clause License\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "include LICENSE\ninclude COPYRIGHT\ninclude README.md\ninclude talib/*.c\ninclude talib/*.pyx\ninclude talib/*.pxd\ninclude talib/*.pxi\ninclude tests/*.py\n"
  },
  {
    "path": "Makefile",
    "content": ".PHONY: build\n\nbuild:\n\tpython3 -m pip install --use-pep517 -e .\n\ninstall:\n\tpython3 -m pip install --use-pep517 .\n\ntalib/_func.pxi: tools/generate_func.py\n\tpython3 tools/generate_func.py > talib/_func.pxi\n\ntalib/_stream.pxi: tools/generate_stream.py\n\tpython3 tools/generate_stream.py > talib/_stream.pxi\n\ngenerate: talib/_func.pxi talib/_stream.pxi\n\ncython:\n\tcython talib/_ta_lib.pyx\n\nannotate:\n\tcython -a talib/_ta_lib.pyx\n\nclean:\n\trm -rf build talib/_ta_lib.so talib/*.pyc\n\nperf:\n\tpython3 tools/perf_talib.py\n\ntest: build\n\tpytest tests/\n\nsdist:\n\tpython3 -m build --sdist\n"
  },
  {
    "path": "README.md",
    "content": "# TA-Lib 📈\n\n<!-- Badges -->\n![Tests](https://github.com/ta-lib/ta-lib-python/actions/workflows/tests.yml/badge.svg)\n[![Release](https://img.shields.io/github/v/release/ta-lib/ta-lib-python?label=Release)](https://github.com/ta-lib/ta-lib-python/releases)\n[![PyPI](https://img.shields.io/pypi/v/TA-Lib?label=PyPI)](https://pypi.org/project/TA-Lib/)\n[![Wheels](https://img.shields.io/pypi/wheel/TA-Lib?label=Wheels)](https://pypi.org/project/TA-Lib/#files)\n[![Python Versions](https://img.shields.io/pypi/pyversions/TA-Lib?label=Python)](https://pypi.org/project/TA-Lib/)\n[![License](https://img.shields.io/badge/License-BSD%202--Clause-blue.svg)](https://opensource.org/licenses/BSD-2-Clause)\n\nThis is a Python wrapper for [TA-LIB](http://ta-lib.org) based on Cython\ninstead of SWIG. From the homepage:\n\n> TA-Lib is widely used by trading software developers requiring to perform\n> technical analysis of financial market data.\n>\n> * Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger\n>   Bands, etc.\n> * Candlestick pattern recognition\n> * Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET\n\nThe original Python bindings included with TA-Lib use\n[SWIG](http://swig.org) which unfortunately are difficult to install and\naren't as efficient as they could be. Therefore this project uses\n[Cython](https://cython.org) and [Numpy](https://numpy.org) to efficiently\nand cleanly bind to TA-Lib - producing results 2-4 times faster than the\nSWIG interface.\n\nIn addition, this project also supports the use of the\n[Polars](https://www.pola.rs) and [Pandas](https://pandas.pydata.org)\nlibraries.\n\n## Versions 🗂️\n\nThe upstream TA-Lib C library released version 0.6.1 and changed the library\nname to `-lta-lib` from `-lta_lib`. After trying to support both via\nautodetect and having some issues, we have decided to currently support three\nfeature branches:\n\n* `ta-lib-python` 0.4.x (supports `ta-lib` 0.4.x and `numpy` 1)\n* `ta-lib-python` 0.5.x (supports `ta-lib` 0.4.x and `numpy` 2)\n* `ta-lib-python` 0.6.x (supports `ta-lib` 0.6.x and `numpy` 2)\n\n## Installation 💾\n\nYou can install from PyPI:\n\n```shell\npython -m pip install TA-Lib\n```\n\nOr checkout the sources and run `setup.py` yourself:\n\n```shell\npython setup.py install\n```\n\nIt also appears possible to install via [Conda Forge](https://anaconda.org/conda-forge/ta-lib):\n\n```shell\nconda install -c conda-forge ta-lib\n```\n\n### Dependencies 🧩\n\nTo use TA-Lib for python, you need to have the [TA-Lib](http://ta-lib.org)\nalready installed. You should probably follow their [installation\ndirections](https://ta-lib.org/install/) for your platform, but some\nsuggestions are included below for reference.\n\n> Some Conda Forge users have reported success installing the underlying TA-Lib C\n> library using [the libta-lib package](https://anaconda.org/conda-forge/libta-lib):\n>\n> ``$ conda install -c conda-forge libta-lib``\n\n#### Mac OS X\n\nYou can simply install using Homebrew:\n\n```shell\nbrew install ta-lib\n```\n\nIf you are using Apple Silicon, such as the M1 processors, and building mixed\narchitecture Homebrew projects, you might want to make sure it's being built\nfor your architecture:\n\n```shell\narch -arm64 brew install ta-lib\n```\n\nAnd perhaps you can set these before installing with `pip`:\n\n```shell\nexport TA_INCLUDE_PATH=\"$(brew --prefix ta-lib)/include\"\nexport TA_LIBRARY_PATH=\"$(brew --prefix ta-lib)/lib\"\n```\n\nYou might also find this helpful, particularly if you have tried several\ndifferent installations without success:\n\n```shell\nyour-arm64-python -m pip install --no-cache-dir ta-lib\n```\n\n#### Windows\n\nFor 64-bit Windows, the easiest way is to get the *executable installer*:\n\n1. Download [ta-lib-0.6.4-windows-x86_64.msi](https://github.com/ta-lib/ta-lib/releases/download/v0.6.4/ta-lib-0.6.4-windows-x86_64.msi).\n2. Run the Installer or run `msiexec` [from the command-line](https://learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options).\n\nAlternatively, if you prefer to get the libraries without installing, or\nwould like to use the 32-bit version:\n\n* Intel/AMD 64-bit [ta-lib-0.6.4-windows-x86_64.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.6.4/ta-lib-0.6.4-windows-x86_64.zip)\n* Intel/AMD 32-bit [ta-lib-0.6.4-windows-x86_32.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.6.4/ta-lib-0.6.4-windows-x86_32.zip)\n\n#### Linux\n\nDownload\n[ta-lib-0.6.4-src.tar.gz](https://github.com/ta-lib/ta-lib/releases/download/v0.6.4/ta-lib-0.6.4-src.tar.gz)\nand:\n\n```shell\ntar -xzf ta-lib-0.6.4-src.tar.gz\ncd ta-lib-0.6.4/\n./configure --prefix=/usr\nmake\nsudo make install\n```\n\n> If you build `TA-Lib` using `make -jX` it will fail but that's OK!\n> Simply rerun ``make -jX`` followed by ``[sudo] make install``.\n\nNote: if your directory path includes spaces, the installation will probably\nfail with ``No such file or directory`` errors.\n\n### Wheels ⚙️\n\nFor convenience, and starting with version 0.6.5, we now build binary wheels\nfor different operating systems, architectures, and Python versions using\nGitHub Actions which include the underlying TA-Lib C library and are easy to\ninstall.\n\nSupported platforms:\n\n* Linux\n  * x86_64\n  * arm64\n* macOS\n  * x86_64\n  * arm64\n* Windows\n  * x86_64\n  * x86\n  * arm64\n\nSupported Python versions:\n\n* 3.9\n* 3.10\n* 3.11\n* 3.12\n* 3.13\n* 3.14\n\nIn the event that your operating system, architecture, or Python version are\nnot available as a binary wheel, it is fairly easy to install from source\nusing the instructions above.\n\n### Troubleshooting 🛠️\n\nIf you get a warning that looks like this:\n\n```shell\nsetup.py:79: UserWarning: Cannot find ta-lib library, installation may fail.\nwarnings.warn('Cannot find ta-lib library, installation may fail.')\n```\n\nThis typically means `setup.py` can't find the underlying `TA-Lib`\nlibrary, a dependency which needs to be installed.\n\n---\n\nIf you installed the underlying `TA-Lib` library with a custom prefix\n(e.g., with `./configure --prefix=$PREFIX`), then when you go to install\nthis python wrapper you can specify additional search paths to find the\nlibrary and include files for the underlying `TA-Lib` library using the\n`TA_LIBRARY_PATH` and `TA_INCLUDE_PATH` environment variables:\n\n```shell\nexport TA_LIBRARY_PATH=$PREFIX/lib\nexport TA_INCLUDE_PATH=$PREFIX/include\npython setup.py install # or pip install ta-lib\n```\n\n---\n\nSometimes installation will produce build errors like this:\n\n```shell\ntalib/_ta_lib.c:601:10: fatal error: ta-lib/ta_defs.h: No such file or directory\n  601 | #include \"ta-lib/ta_defs.h\"\n      |          ^~~~~~~~~~~~~~~~~~\ncompilation terminated.\n```\n\nor:\n\n```shell\ncommon.obj : error LNK2001: unresolved external symbol TA_SetUnstablePeriod\ncommon.obj : error LNK2001: unresolved external symbol TA_Shutdown\ncommon.obj : error LNK2001: unresolved external symbol TA_Initialize\ncommon.obj : error LNK2001: unresolved external symbol TA_GetUnstablePeriod\ncommon.obj : error LNK2001: unresolved external symbol TA_GetVersionString\n```\n\nThis typically means that it can't find the underlying `TA-Lib` library, a\ndependency which needs to be installed.  On Windows, this could be caused by\ninstalling the 32-bit binary distribution of the underlying `TA-Lib` library,\nbut trying to use it with 64-bit Python.\n\n---\n\nSometimes installation will fail with errors like this:\n\n```shell\ntalib/common.c:8:22: fatal error: pyconfig.h: No such file or directory\n #include \"pyconfig.h\"\n                      ^\ncompilation terminated.\nerror: command 'x86_64-linux-gnu-gcc' failed with exit status 1\n```\n\nThis typically means that you need the Python headers, and should run\nsomething like:\n\n```shell\nsudo apt-get install python3-dev\n```\n\n---\n\nSometimes building the underlying `TA-Lib` library has errors running\n`make` that look like this:\n\n```shell\n../libtool: line 1717: cd: .libs/libta_lib.lax/libta_abstract.a: No such file or directory\nmake[2]: *** [libta_lib.la] Error 1\nmake[1]: *** [all-recursive] Error 1\nmake: *** [all-recursive] Error 1\n```\n\nThis might mean that the directory path to the underlying `TA-Lib` library\nhas spaces in the directory names.  Try putting it in a path that does not have\nany spaces and trying again.\n\n---\n\nSometimes you might get this error running `setup.py`:\n\n```shell\n/usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory\n#include <bits/libc-header-start.h>\n         ^~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n\nThis is likely an issue with trying to compile for 32-bit platform but\nwithout the appropriate headers.  You might find some success looking at the\nfirst answer to [this question](https://stackoverflow.com/questions/54082459/fatal-error-bits-libc-header-start-h-no-such-file-or-directory-while-compili).\n\n---\n\nIf you get an error on macOS like this:\n\n```shell\ncode signature in <141BC883-189B-322C-AE90-CBF6B5206F67>\n'python3.9/site-packages/talib/_ta_lib.cpython-39-darwin.so' not valid for\nuse in process: Trying to load an unsigned library)\n```\n\nYou might look at [this question](https://stackoverflow.com/questions/69610572/how-can-i-solve-the-below-error-while-importing-nltk-package)\nand use ``xcrun codesign`` to fix it.\n\n---\n\nIf you wonder why `STOCHRSI` gives you different results than you expect,\nprobably you want `STOCH` applied to `RSI`, which is a little different\nthan the `STOCHRSI` which is `STOCHF` applied to `RSI`:\n\n```python\n>>> import talib\n>>> import numpy as np\n>>> c = np.random.randn(100)\n\n# this is the library function\n>>> k, d = talib.STOCHRSI(c)\n\n# this produces the same result, calling STOCHF\n>>> rsi = talib.RSI(c)\n>>> k, d = talib.STOCHF(rsi, rsi, rsi)\n\n# you might want this instead, calling STOCH\n>>> rsi = talib.RSI(c)\n>>> k, d = talib.STOCH(rsi, rsi, rsi)\n```\n\n---\n\nIf the build appears to hang, you might be running on a VM with not enough memory - try 1 GB or 2 GB.\n\nIt has also been reported that using a swapfile could help, for example:\n\n```shell\nsudo fallocate -l 1G /swapfile\nsudo chmod 600 /swapfile\nsudo mkswap /swapfile\nsudo swapon /swapfile\n```\n\n---\n\nIf you get \"permission denied\" errors such as this, you might need to give\nyour user access to the location where the underlying TA-Lib C library is\ninstalled -- or install it to a user-accessible location.\n\n```shell\ntalib/_ta_lib.c:747:28: fatal error: /usr/include/ta-lib/ta_defs.h: Permission denied\n #include \"ta-lib/ta-defs.h\"\n                            ^\ncompilation terminated\nerror: command 'gcc' failed with exit status 1\n```\n\n---\n\nIf you're having trouble compiling the underlying TA-Lib C library on ARM64,\nyou might need to configure it with an explicit build type before running\n`make` and `make install`, for example:\n\n```shell\n./configure --build=aarch64-unknown-linux-gnu\n```\n\nThis is caused by old `config.guess` file, so another way to solve this is\nto copy a newer version of config.guess into the underlying TA-Lib C library\nsources:\n\n```shell\ncp /usr/share/automake-1.16/config.guess /path/to/extracted/ta-lib/config.guess\n```\n\nAnd then re-run configure:\n\n```shell\n./configure\n```\n\n---\n\nIf you're having trouble using [PyInstaller](https://pyinstaller.org) and\nget an error that looks like this:\n\n```shell\n...site-packages\\PyInstaller\\loader\\pyimod03_importers.py\", line 493, in exec_module\n    exec(bytecode, module.__dict__)\n  File \"talib\\__init__.py\", line 72, in <module>\nModuleNotFoundError: No module named 'talib.stream'\n```\n\nThen, perhaps you can use the `--hidden-import` argument to fix this:\n\n```shell\npyinstaller --hidden-import talib.stream \"replaceToYourFileName.py\"\n```\n\n---\n\nIf you want to use `numpy<2`, then you should use `ta-lib<0.5`.\n\nIf you want to use `numpy>=2`, then you should use `ta-lib>=0.5`.\n\n---\n\nIf you have trouble getting the code autocompletions to work in Visual\nStudio Code, a suggestion was made to look for the `Python` extension\nsettings, and an option for `Language Server`, and change it from\n`Default` (which means `Pylance if it is installed, Jedi otherwise`), to\nmanually set `Jedi` and the completions should work. It is possible that\nyou might need to [install it manually](https://github.com/pappasam/jedi-language-server) for this to\nwork.\n\n## Function API\n\nSimilar to TA-Lib, the Function API provides a lightweight wrapper of the\nexposed TA-Lib indicators.\n\nEach function returns an output array and have default values for their\nparameters, unless specified as keyword arguments. Typically, these functions\nwill have an initial \"lookback\" period (a required number of observations\nbefore an output is generated) set to `NaN`.\n\nFor convenience, the Function API supports both `numpy.ndarray` and\n`pandas.Series` and `polars.Series` inputs.\n\nAll of the following examples use the Function API:\n\n```python\nimport numpy as np\nimport talib\n\nclose = np.random.random(100)\n```\n\nCalculate a simple moving average of the close prices:\n\n```python\noutput = talib.SMA(close)\n```\n\nCalculating bollinger bands, with triple exponential moving average:\n\n```python\nfrom talib import MA_Type\n\nupper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3)\n```\n\nCalculating momentum of the close prices, with a time period of 5:\n\n```python\noutput = talib.MOM(close, timeperiod=5)\n```\n\n### NaN's\n\nThe underlying TA-Lib C library handles NaN's in a sometimes surprising manner\nby typically propagating NaN's to the end of the output, for example:\n\n```python\n>>> c = np.array([1.0, 2.0, 3.0, np.nan, 4.0, 5.0, 6.0])\n\n>>> talib.SMA(c, 3)\narray([nan, nan,  2., nan, nan, nan, nan])\n```\n\nYou can compare that to a Pandas rolling mean, where their approach is to\noutput NaN until enough \"lookback\" values are observed to generate new outputs:\n\n```python\n>>> c = pandas.Series([1.0, 2.0, 3.0, np.nan, 4.0, 5.0, 6.0])\n\n>>> c.rolling(3).mean()\n0    NaN\n1    NaN\n2    2.0\n3    NaN\n4    NaN\n5    NaN\n6    5.0\ndtype: float64\n```\n\n## Abstract API\n\nIf you're already familiar with using the function API, you should feel right\nat home using the Abstract API.\n\nEvery function takes a collection of named inputs, either a ``dict`` of\n``numpy.ndarray`` or ``pandas.Series`` or ``polars.Series``, or a\n``pandas.DataFrame`` or ``polars.DataFrame``. If a ``pandas.DataFrame`` or\n``polars.DataFrame`` is provided, the output is returned as the same type\nwith named output columns.\n\nFor example, inputs could be provided for the typical \"OHLCV\" data:\n\n```python\nimport numpy as np\n\n# note that all ndarrays must be the same length!\ninputs = {\n    'open': np.random.random(100),\n    'high': np.random.random(100),\n    'low': np.random.random(100),\n    'close': np.random.random(100),\n    'volume': np.random.random(100)\n}\n```\n\nFunctions can either be imported directly or instantiated by name:\n\n```python\nfrom talib import abstract\n\n# directly\nSMA = abstract.SMA\n\n# or by name\nSMA = abstract.Function('sma')\n```\n\nFrom there, calling functions is basically the same as the function API:\n\n```python\nfrom talib.abstract import *\n\n# uses close prices (default)\noutput = SMA(inputs, timeperiod=25)\n\n# uses open prices\noutput = SMA(inputs, timeperiod=25, price='open')\n\n# uses close prices (default)\nupper, middle, lower = BBANDS(inputs, 20, 2.0, 2.0)\n\n# uses high, low, close (default)\nslowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0) # uses high, low, close by default\n\n# uses high, low, open instead\nslowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])\n```\n\n## Streaming API\n\nAn experimental Streaming API was added that allows users to compute the latest\nvalue of an indicator.  This can be faster than using the Function API, for\nexample in an application that receives streaming data, and wants to know just\nthe most recent updated indicator value.\n\n```python\nimport talib\nfrom talib import stream\n\nclose = np.random.random(100)\n\n# the Function API\noutput = talib.SMA(close)\n\n# the Streaming API\nlatest = stream.SMA(close)\n\n# the latest value is the same as the last output value\nassert (output[-1] - latest) < 0.00001\n```\n\n## Supported Indicators and Functions 📋\n\nWe can show all the TA functions supported by TA-Lib, either as a `list` or\nas a `dict` sorted by group (e.g. \"Overlap Studies\", \"Momentum Indicators\",\netc):\n\n```python\nimport talib\n\n# list of functions\nfor name in talib.get_functions():\n    print(name)\n\n# dict of functions by group\nfor group, names in talib.get_function_groups().items():\n    print(group)\n    for name in names:\n        print(f\"  {name}\")\n```\n\n### Indicator Groups 🏷️\n\n* Overlap Studies\n* Momentum Indicators\n* Volume Indicators\n* Volatility Indicators\n* Price Transform\n* Cycle Indicators\n* Pattern Recognition\n\n#### Overlap Studies\n\n```text\nBBANDS               Bollinger Bands\nDEMA                 Double Exponential Moving Average\nEMA                  Exponential Moving Average\nHT_TRENDLINE         Hilbert Transform - Instantaneous Trendline\nKAMA                 Kaufman Adaptive Moving Average\nMA                   Moving average\nMAMA                 MESA Adaptive Moving Average\nMAVP                 Moving average with variable period\nMIDPOINT             MidPoint over period\nMIDPRICE             Midpoint Price over period\nSAR                  Parabolic SAR\nSAREXT               Parabolic SAR - Extended\nSMA                  Simple Moving Average\nT3                   Triple Exponential Moving Average (T3)\nTEMA                 Triple Exponential Moving Average\nTRIMA                Triangular Moving Average\nWMA                  Weighted Moving Average\n```\n\n#### Momentum Indicators\n\n```text\nADX                  Average Directional Movement Index\nADXR                 Average Directional Movement Index Rating\nAPO                  Absolute Price Oscillator\nAROON                Aroon\nAROONOSC             Aroon Oscillator\nBOP                  Balance Of Power\nCCI                  Commodity Channel Index\nCMO                  Chande Momentum Oscillator\nDX                   Directional Movement Index\nMACD                 Moving Average Convergence/Divergence\nMACDEXT              MACD with controllable MA type\nMACDFIX              Moving Average Convergence/Divergence Fix 12/26\nMFI                  Money Flow Index\nMINUS_DI             Minus Directional Indicator\nMINUS_DM             Minus Directional Movement\nMOM                  Momentum\nPLUS_DI              Plus Directional Indicator\nPLUS_DM              Plus Directional Movement\nPPO                  Percentage Price Oscillator\nROC                  Rate of change : ((price/prevPrice)-1)*100\nROCP                 Rate of change Percentage: (price-prevPrice)/prevPrice\nROCR                 Rate of change ratio: (price/prevPrice)\nROCR100              Rate of change ratio 100 scale: (price/prevPrice)*100\nRSI                  Relative Strength Index\nSTOCH                Stochastic\nSTOCHF               Stochastic Fast\nSTOCHRSI             Stochastic Relative Strength Index\nTRIX                 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA\nULTOSC               Ultimate Oscillator\nWILLR                Williams' %R\n```\n\n#### Volume Indicators\n\n```text\nAD                   Chaikin A/D Line\nADOSC                Chaikin A/D Oscillator\nOBV                  On Balance Volume\n```\n\n#### Cycle Indicators\n\n```text\nHT_DCPERIOD          Hilbert Transform - Dominant Cycle Period\nHT_DCPHASE           Hilbert Transform - Dominant Cycle Phase\nHT_PHASOR            Hilbert Transform - Phasor Components\nHT_SINE              Hilbert Transform - SineWave\nHT_TRENDMODE         Hilbert Transform - Trend vs Cycle Mode\n```\n\n#### Price Transform\n\n```text\nAVGPRICE             Average Price\nMEDPRICE             Median Price\nTYPPRICE             Typical Price\nWCLPRICE             Weighted Close Price\n```\n\n#### Volatility Indicators\n\n```text\nATR                  Average True Range\nNATR                 Normalized Average True Range\nTRANGE               True Range\n```\n\n#### Pattern Recognition\n\n```text\nCDL2CROWS            Two Crows\nCDL3BLACKCROWS       Three Black Crows\nCDL3INSIDE           Three Inside Up/Down\nCDL3LINESTRIKE       Three-Line Strike\nCDL3OUTSIDE          Three Outside Up/Down\nCDL3STARSINSOUTH     Three Stars In The South\nCDL3WHITESOLDIERS    Three Advancing White Soldiers\nCDLABANDONEDBABY     Abandoned Baby\nCDLADVANCEBLOCK      Advance Block\nCDLBELTHOLD          Belt-hold\nCDLBREAKAWAY         Breakaway\nCDLCLOSINGMARUBOZU   Closing Marubozu\nCDLCONCEALBABYSWALL  Concealing Baby Swallow\nCDLCOUNTERATTACK     Counterattack\nCDLDARKCLOUDCOVER    Dark Cloud Cover\nCDLDOJI              Doji\nCDLDOJISTAR          Doji Star\nCDLDRAGONFLYDOJI     Dragonfly Doji\nCDLENGULFING         Engulfing Pattern\nCDLEVENINGDOJISTAR   Evening Doji Star\nCDLEVENINGSTAR       Evening Star\nCDLGAPSIDESIDEWHITE  Up/Down-gap side-by-side white lines\nCDLGRAVESTONEDOJI    Gravestone Doji\nCDLHAMMER            Hammer\nCDLHANGINGMAN        Hanging Man\nCDLHARAMI            Harami Pattern\nCDLHARAMICROSS       Harami Cross Pattern\nCDLHIGHWAVE          High-Wave Candle\nCDLHIKKAKE           Hikkake Pattern\nCDLHIKKAKEMOD        Modified Hikkake Pattern\nCDLHOMINGPIGEON      Homing Pigeon\nCDLIDENTICAL3CROWS   Identical Three Crows\nCDLINNECK            In-Neck Pattern\nCDLINVERTEDHAMMER    Inverted Hammer\nCDLKICKING           Kicking\nCDLKICKINGBYLENGTH   Kicking - bull/bear determined by the longer marubozu\nCDLLADDERBOTTOM      Ladder Bottom\nCDLLONGLEGGEDDOJI    Long Legged Doji\nCDLLONGLINE          Long Line Candle\nCDLMARUBOZU          Marubozu\nCDLMATCHINGLOW       Matching Low\nCDLMATHOLD           Mat Hold\nCDLMORNINGDOJISTAR   Morning Doji Star\nCDLMORNINGSTAR       Morning Star\nCDLONNECK            On-Neck Pattern\nCDLPIERCING          Piercing Pattern\nCDLRICKSHAWMAN       Rickshaw Man\nCDLRISEFALL3METHODS  Rising/Falling Three Methods\nCDLSEPARATINGLINES   Separating Lines\nCDLSHOOTINGSTAR      Shooting Star\nCDLSHORTLINE         Short Line Candle\nCDLSPINNINGTOP       Spinning Top\nCDLSTALLEDPATTERN    Stalled Pattern\nCDLSTICKSANDWICH     Stick Sandwich\nCDLTAKURI            Takuri (Dragonfly Doji with very long lower shadow)\nCDLTASUKIGAP         Tasuki Gap\nCDLTHRUSTING         Thrusting Pattern\nCDLTRISTAR           Tristar Pattern\nCDLUNIQUE3RIVER      Unique 3 River\nCDLUPSIDEGAP2CROWS   Upside Gap Two Crows\nCDLXSIDEGAP3METHODS  Upside/Downside Gap Three Methods\n```\n\n#### Statistic Functions\n\n```text\nBETA                 Beta\nCORREL               Pearson's Correlation Coefficient (r)\nLINEARREG            Linear Regression\nLINEARREG_ANGLE      Linear Regression Angle\nLINEARREG_INTERCEPT  Linear Regression Intercept\nLINEARREG_SLOPE      Linear Regression Slope\nSTDDEV               Standard Deviation\nTSF                  Time Series Forecast\nVAR                  Variance\n```\n"
  },
  {
    "path": "docs/abstract.md",
    "content": "# Abstract API Quick Start\n\nIf you're already familiar with using the function API, you should feel right\nat home using the abstract API. Every function takes the same input, passed\nas a dictionary of Numpy arrays:\n\n```python\nimport numpy as np\n# note that all ndarrays must be the same length!\ninputs = {\n    'open': np.random.random(100),\n    'high': np.random.random(100),\n    'low': np.random.random(100),\n    'close': np.random.random(100),\n    'volume': np.random.random(100)\n}\n```\n\nFunctions can either be imported directly or instantiated by name:\n\n```python\nfrom talib import abstract\nsma = abstract.SMA\nsma = abstract.Function('sma')\n```\n\nFrom there, calling functions is basically the same as the function API:\n\n```python\nfrom talib.abstract import *\noutput = SMA(inputs, timeperiod=25) # calculate on close prices by default\noutput = SMA(inputs, timeperiod=25, price='open') # calculate on opens\nupper, middle, lower = BBANDS(inputs, 20, 2, 2)\nslowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0) # uses high, low, close by default\nslowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])\n```\n\n## Advanced Usage\n\nFor more advanced use cases of TA-Lib, the Abstract API also offers much more\nflexibility. You can even subclass ``abstract.Function`` and override\n``set_input_arrays`` to customize the type of input data Function accepts\n(e.g. a pandas DataFrame).\n\nDetails about every function can be accessed via the info property:\n\n```python\nprint Function('stoch').info\n{\n  'name': 'STOCH',\n  'display_name': 'Stochastic',\n  'group': 'Momentum Indicators',\n  'input_names': OrderedDict([\n    ('prices', ['high', 'low', 'close']),\n  ]),\n  'parameters': OrderedDict([\n    ('fastk_period', 5),\n    ('slowk_period', 3),\n    ('slowk_matype', 0),\n    ('slowd_period', 3),\n    ('slowd_matype', 0),\n  ]),\n  'output_names': ['slowk', 'slowd'],\n}\n\n```\nOr in human-readable format:\n```python\nhelp(STOCH)\nstr(STOCH)\n```\n\nOther useful properties of ``Function``:\n\n```python\nFunction('x').function_flags\nFunction('x').input_names\nFunction('x').input_arrays\nFunction('x').parameters\nFunction('x').lookback\nFunction('x').output_names\nFunction('x').output_flags\nFunction('x').outputs\n```\n\nAside from calling the function directly, Functions maintain state and will\nremember their parameters/input_arrays after they've been set. You can set\nparameters and recalculate with new input data using run():\n```python\nSMA.parameters = {'timeperiod': 15}\nresult1 = SMA.run(input_arrays1)\nresult2 = SMA.run(input_arrays2)\n\n# Or set input_arrays and change the parameters:\nSMA.input_arrays = input_arrays1\nma10 = SMA(timeperiod=10)\nma20 = SMA(20)\n```\n\nFor more details, take a look at the\n[code](https://github.com/ta-lib/ta-lib-python/blob/master/talib/abstract.pyx#L46).\n\n[Documentation Index](doc_index.md)\n"
  },
  {
    "path": "docs/doc_index.md",
    "content": "# Documentation\n\n* [Installation and Troubleshooting](install.md)\n* [Using the Function API](func.md)\n* [Using the Abstract API](abstract.md)\n* [All Functions](funcs.md)\n    * [Overlap Studies](func_groups/overlap_studies.md)\n    * [Momentum Indicators](func_groups/momentum_indicators.md)\n    * [Volume Indicators](func_groups/volume_indicators.md)\n    * [Volatility Indicators](func_groups/volatility_indicators.md)\n    * [Price Transform](func_groups/price_transform.md)\n    * [Cycle Indicators](func_groups/cycle_indicators.md)\n    * [Pattern Recognition](func_groups/pattern_recognition.md)\n    * [Statistic Functions](func_groups/statistic_functions.md)\n    * [Math Transform](func_groups/math_transform.md)\n    * [Math Operators](func_groups/math_operators.md)\n"
  },
  {
    "path": "docs/func.md",
    "content": "# Function API Examples\n\nSimilar to TA-Lib, the function interface provides a lightweight wrapper of\nthe exposed TA-Lib indicators.\n\nEach function returns an output array and have default values for their\nparameters, unless specified as keyword arguments. Typically, these functions\nwill have an initial \"lookback\" period (a required number of observations\nbefore an output is generated) set to ``NaN``.\n\nAll of the following examples use the function API:\n\n```python\nimport numpy\nimport talib\n\nclose = numpy.random.random(100)\n```\n\nCalculate a simple moving average of the close prices:\n\n```python\noutput = talib.SMA(close)\n```\n\nCalculating bollinger bands, with triple exponential moving average:\n\n```python\nfrom talib import MA_Type\n\nupper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3)\n```\n\nCalculating momentum of the close prices, with a time period of 5:\n\n```python\noutput = talib.MOM(close, timeperiod=5)\n```\n\nDocumentation for all functions:\n\n* [Overlap Studies](func_groups/overlap_studies.md)\n* [Momentum Indicators](func_groups/momentum_indicators.md)\n* [Volume Indicators](func_groups/volume_indicators.md)\n* [Volatility Indicators](func_groups/volatility_indicators.md)\n* [Pattern Recognition](func_groups/pattern_recognition.md)\n* [Cycle Indicators](func_groups/cycle_indicators.md)\n* [Statistic Functions](func_groups/statistic_functions.md)\n* [Price Transform](func_groups/price_transform.md)\n* [Math Transform](func_groups/math_transform.md)\n* [Math Operators](func_groups/math_operators.md)\n\n[Documentation Index](doc_index.md)\n[FLOAT_RIGHTNext: Using the Abstract API](abstract.md)\n"
  },
  {
    "path": "docs/func_groups/cycle_indicators.md",
    "content": "# Cycle Indicator Functions\n### HT_DCPERIOD - Hilbert Transform - Dominant Cycle Period\nNOTE: The ``HT_DCPERIOD`` function has an unstable period.  \n```python\nreal = HT_DCPERIOD(real)\n```\n\n### HT_DCPHASE - Hilbert Transform - Dominant Cycle Phase\nNOTE: The ``HT_DCPHASE`` function has an unstable period.  \n```python\nreal = HT_DCPHASE(real)\n```\n\n### HT_PHASOR - Hilbert Transform - Phasor Components\nNOTE: The ``HT_PHASOR`` function has an unstable period.  \n```python\ninphase, quadrature = HT_PHASOR(real)\n```\n\n### HT_SINE - Hilbert Transform - SineWave\nNOTE: The ``HT_SINE`` function has an unstable period.  \n```python\nsine, leadsine = HT_SINE(real)\n```\n\n### HT_TRENDMODE - Hilbert Transform - Trend vs Cycle Mode\nNOTE: The ``HT_TRENDMODE`` function has an unstable period.  \n```python\ninteger = HT_TRENDMODE(real)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/math_operators.md",
    "content": "# Math Operator Functions\n### ADD - Vector Arithmetic Add\n```python\nreal = ADD(real0, real1)\n```\n\n### DIV - Vector Arithmetic Div\n```python\nreal = DIV(real0, real1)\n```\n\n### MAX - Highest value over a specified period\n```python\nreal = MAX(real, timeperiod=30)\n```\n\n### MAXINDEX - Index of highest value over a specified period\n```python\ninteger = MAXINDEX(real, timeperiod=30)\n```\n\n### MIN - Lowest value over a specified period\n```python\nreal = MIN(real, timeperiod=30)\n```\n\n### MININDEX - Index of lowest value over a specified period\n```python\ninteger = MININDEX(real, timeperiod=30)\n```\n\n### MINMAX - Lowest and highest values over a specified period\n```python\nmin, max = MINMAX(real, timeperiod=30)\n```\n\n### MINMAXINDEX - Indexes of lowest and highest values over a specified period\n```python\nminidx, maxidx = MINMAXINDEX(real, timeperiod=30)\n```\n\n### MULT - Vector Arithmetic Mult\n```python\nreal = MULT(real0, real1)\n```\n\n### SUB - Vector Arithmetic Subtraction\n```python\nreal = SUB(real0, real1)\n```\n\n### SUM - Summation\n```python\nreal = SUM(real, timeperiod=30)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/math_transform.md",
    "content": "# Math Transform Functions\n### ACOS - Vector Trigonometric ACos\n```python\nreal = ACOS(real)\n```\n\n### ASIN - Vector Trigonometric ASin\n```python\nreal = ASIN(real)\n```\n\n### ATAN - Vector Trigonometric ATan\n```python\nreal = ATAN(real)\n```\n\n### CEIL - Vector Ceil\n```python\nreal = CEIL(real)\n```\n\n### COS - Vector Trigonometric Cos\n```python\nreal = COS(real)\n```\n\n### COSH - Vector Trigonometric Cosh\n```python\nreal = COSH(real)\n```\n\n### EXP - Vector Arithmetic Exp\n```python\nreal = EXP(real)\n```\n\n### FLOOR - Vector Floor\n```python\nreal = FLOOR(real)\n```\n\n### LN - Vector Log Natural\n```python\nreal = LN(real)\n```\n\n### LOG10 - Vector Log10\n```python\nreal = LOG10(real)\n```\n\n### SIN - Vector Trigonometric Sin\n```python\nreal = SIN(real)\n```\n\n### SINH - Vector Trigonometric Sinh\n```python\nreal = SINH(real)\n```\n\n### SQRT - Vector Square Root\n```python\nreal = SQRT(real)\n```\n\n### TAN - Vector Trigonometric Tan\n```python\nreal = TAN(real)\n```\n\n### TANH - Vector Trigonometric Tanh\n```python\nreal = TANH(real)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/momentum_indicators.md",
    "content": "# Momentum Indicator Functions\n### ADX - Average Directional Movement Index\nNOTE: The ``ADX`` function has an unstable period.  \n```python\nreal = ADX(high, low, close, timeperiod=14)\n```\n\n### ADXR - Average Directional Movement Index Rating\nNOTE: The ``ADXR`` function has an unstable period.  \n```python\nreal = ADXR(high, low, close, timeperiod=14)\n```\n\n### APO - Absolute Price Oscillator\n```python\nreal = APO(real, fastperiod=12, slowperiod=26, matype=0)\n```\n\n### AROON - Aroon\n```python\naroondown, aroonup = AROON(high, low, timeperiod=14)\n```\n\n### AROONOSC - Aroon Oscillator\n```python\nreal = AROONOSC(high, low, timeperiod=14)\n```\n\n### BOP - Balance Of Power\n```python\nreal = BOP(open, high, low, close)\n```\n\n### CCI - Commodity Channel Index\n```python\nreal = CCI(high, low, close, timeperiod=14)\n```\n\n### CMO - Chande Momentum Oscillator\nNOTE: The ``CMO`` function has an unstable period.  \n```python\nreal = CMO(real, timeperiod=14)\n```\n\n### DX - Directional Movement Index\nNOTE: The ``DX`` function has an unstable period.  \n```python\nreal = DX(high, low, close, timeperiod=14)\n```\n\n### IMI - Intraday Momentum Index\nNOTE: The ``IMI`` function has an unstable period.\n```python\nreal = IMI(open, close, timeperiod=14)\n```\n\n### MACD - Moving Average Convergence/Divergence\n```python\nmacd, macdsignal, macdhist = MACD(real, fastperiod=12, slowperiod=26, signalperiod=9)\n```\n\n### MACDEXT - MACD with controllable MA type\n```python\nmacd, macdsignal, macdhist = MACDEXT(real, fastperiod=12, fastmatype=0, slowperiod=26, slowmatype=0, signalperiod=9, signalmatype=0)\n```\n\n### MACDFIX - Moving Average Convergence/Divergence Fix 12/26\n```python\nmacd, macdsignal, macdhist = MACDFIX(real, signalperiod=9)\n```\n\n### MFI - Money Flow Index\nNOTE: The ``MFI`` function has an unstable period.  \n```python\nreal = MFI(high, low, close, volume, timeperiod=14)\n```\n\n### MINUS_DI - Minus Directional Indicator\nNOTE: The ``MINUS_DI`` function has an unstable period.  \n```python\nreal = MINUS_DI(high, low, close, timeperiod=14)\n```\n\n### MINUS_DM - Minus Directional Movement\nNOTE: The ``MINUS_DM`` function has an unstable period.  \n```python\nreal = MINUS_DM(high, low, timeperiod=14)\n```\n\n### MOM - Momentum\n```python\nreal = MOM(real, timeperiod=10)\n```\n\n### PLUS_DI - Plus Directional Indicator\nNOTE: The ``PLUS_DI`` function has an unstable period.  \n```python\nreal = PLUS_DI(high, low, close, timeperiod=14)\n```\n\n### PLUS_DM - Plus Directional Movement\nNOTE: The ``PLUS_DM`` function has an unstable period.  \n```python\nreal = PLUS_DM(high, low, timeperiod=14)\n```\n\n### PPO - Percentage Price Oscillator\n```python\nreal = PPO(real, fastperiod=12, slowperiod=26, matype=0)\n```\n\n### ROC - Rate of change : ((price/prevPrice)-1)*100\n```python\nreal = ROC(real, timeperiod=10)\n```\n\n### ROCP - Rate of change Percentage: (price-prevPrice)/prevPrice\n```python\nreal = ROCP(real, timeperiod=10)\n```\n\n### ROCR - Rate of change ratio: (price/prevPrice)\n```python\nreal = ROCR(real, timeperiod=10)\n```\n\n### ROCR100 - Rate of change ratio 100 scale: (price/prevPrice)*100\n```python\nreal = ROCR100(real, timeperiod=10)\n```\n\n### RSI - Relative Strength Index\nNOTE: The ``RSI`` function has an unstable period.  \n```python\nreal = RSI(real, timeperiod=14)\n```\n\n### STOCH - Stochastic\n```python\nslowk, slowd = STOCH(high, low, close, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)\n```\n\n### STOCHF - Stochastic Fast\n```python\nfastk, fastd = STOCHF(high, low, close, fastk_period=5, fastd_period=3, fastd_matype=0)\n```\n\n### STOCHRSI - Stochastic Relative Strength Index\nNOTE: The ``STOCHRSI`` function has an unstable period.  \n```python\nfastk, fastd = STOCHRSI(real, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)\n```\n\n### TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA\n```python\nreal = TRIX(real, timeperiod=30)\n```\n\n### ULTOSC - Ultimate Oscillator\n```python\nreal = ULTOSC(high, low, close, timeperiod1=7, timeperiod2=14, timeperiod3=28)\n```\n\n### WILLR - Williams' %R\n```python\nreal = WILLR(high, low, close, timeperiod=14)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/overlap_studies.md",
    "content": "# Overlap Studies Functions\n### ACCBANDS - Acceleration Bands\n```python\nupperband, middleband, lowerband = ACCBANDS(high, low, close, timeperiod=20)\n```\n\n### BBANDS - Bollinger Bands\n```python\nupperband, middleband, lowerband = BBANDS(real, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)\n```\n\n### DEMA - Double Exponential Moving Average\n```python\nreal = DEMA(real, timeperiod=30)\n```\n\n### EMA - Exponential Moving Average\nNOTE: The ``EMA`` function has an unstable period.  \n```python\nreal = EMA(real, timeperiod=30)\n```\n\n### HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline\nNOTE: The ``HT_TRENDLINE`` function has an unstable period.  \n```python\nreal = HT_TRENDLINE(real)\n```\n\n### KAMA - Kaufman Adaptive Moving Average\nNOTE: The ``KAMA`` function has an unstable period.  \n```python\nreal = KAMA(real, timeperiod=30)\n```\n\n### MA - Moving average\n```python\nreal = MA(real, timeperiod=30, matype=0)\n```\n\n### MAMA - MESA Adaptive Moving Average\nNOTE: The ``MAMA`` function has an unstable period.  \n```python\nmama, fama = MAMA(real, fastlimit=0, slowlimit=0)\n```\n\n### MAVP - Moving average with variable period\n```python\nreal = MAVP(real, periods, minperiod=2, maxperiod=30, matype=0)\n```\n\n### MIDPOINT - MidPoint over period\n```python\nreal = MIDPOINT(real, timeperiod=14)\n```\n\n### MIDPRICE - Midpoint Price over period\n```python\nreal = MIDPRICE(high, low, timeperiod=14)\n```\n\n### SAR - Parabolic SAR\n```python\nreal = SAR(high, low, acceleration=0, maximum=0)\n```\n\n### SAREXT - Parabolic SAR - Extended\n```python\nreal = SAREXT(high, low, startvalue=0, offsetonreverse=0, accelerationinitlong=0, accelerationlong=0, accelerationmaxlong=0, accelerationinitshort=0, accelerationshort=0, accelerationmaxshort=0)\n```\n\n### SMA - Simple Moving Average\n```python\nreal = SMA(real, timeperiod=30)\n```\n\n### T3 - Triple Exponential Moving Average (T3)\nNOTE: The ``T3`` function has an unstable period.  \n```python\nreal = T3(real, timeperiod=5, vfactor=0)\n```\n\n### TEMA - Triple Exponential Moving Average\n```python\nreal = TEMA(real, timeperiod=30)\n```\n\n### TRIMA - Triangular Moving Average\n```python\nreal = TRIMA(real, timeperiod=30)\n```\n\n### WMA - Weighted Moving Average\n```python\nreal = WMA(real, timeperiod=30)\n```\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/pattern_recognition.md",
    "content": "# Pattern Recognition Functions\n### CDL2CROWS - Two Crows\n```python\ninteger = CDL2CROWS(open, high, low, close)\n```\n\n### CDL3BLACKCROWS - Three Black Crows\n```python\ninteger = CDL3BLACKCROWS(open, high, low, close)\n```\n\n### CDL3INSIDE - Three Inside Up/Down\n```python\ninteger = CDL3INSIDE(open, high, low, close)\n```\n\n### CDL3LINESTRIKE - Three-Line Strike \n```python\ninteger = CDL3LINESTRIKE(open, high, low, close)\n```\n\n### CDL3OUTSIDE - Three Outside Up/Down\n```python\ninteger = CDL3OUTSIDE(open, high, low, close)\n```\n\n### CDL3STARSINSOUTH - Three Stars In The South\n```python\ninteger = CDL3STARSINSOUTH(open, high, low, close)\n```\n\n### CDL3WHITESOLDIERS - Three Advancing White Soldiers\n```python\ninteger = CDL3WHITESOLDIERS(open, high, low, close)\n```\n\n### CDLABANDONEDBABY - Abandoned Baby\n```python\ninteger = CDLABANDONEDBABY(open, high, low, close, penetration=0)\n```\n\n### CDLADVANCEBLOCK - Advance Block\n```python\ninteger = CDLADVANCEBLOCK(open, high, low, close)\n```\n\n### CDLBELTHOLD - Belt-hold\n```python\ninteger = CDLBELTHOLD(open, high, low, close)\n```\n\n### CDLBREAKAWAY - Breakaway\n```python\ninteger = CDLBREAKAWAY(open, high, low, close)\n```\n\n### CDLCLOSINGMARUBOZU - Closing Marubozu\n```python\ninteger = CDLCLOSINGMARUBOZU(open, high, low, close)\n```\n\n### CDLCONCEALBABYSWALL - Concealing Baby Swallow\n```python\ninteger = CDLCONCEALBABYSWALL(open, high, low, close)\n```\n\n### CDLCOUNTERATTACK - Counterattack\n```python\ninteger = CDLCOUNTERATTACK(open, high, low, close)\n```\n\n### CDLDARKCLOUDCOVER - Dark Cloud Cover\n```python\ninteger = CDLDARKCLOUDCOVER(open, high, low, close, penetration=0)\n```\n\n### CDLDOJI - Doji\n```python\ninteger = CDLDOJI(open, high, low, close)\n```\n\n### CDLDOJISTAR - Doji Star\n```python\ninteger = CDLDOJISTAR(open, high, low, close)\n```\n\n### CDLDRAGONFLYDOJI - Dragonfly Doji\n```python\ninteger = CDLDRAGONFLYDOJI(open, high, low, close)\n```\n\n### CDLENGULFING - Engulfing Pattern\n```python\ninteger = CDLENGULFING(open, high, low, close)\n```\n\n### CDLEVENINGDOJISTAR - Evening Doji Star\n```python\ninteger = CDLEVENINGDOJISTAR(open, high, low, close, penetration=0)\n```\n\n### CDLEVENINGSTAR - Evening Star\n```python\ninteger = CDLEVENINGSTAR(open, high, low, close, penetration=0)\n```\n\n### CDLGAPSIDESIDEWHITE - Up/Down-gap side-by-side white lines\n```python\ninteger = CDLGAPSIDESIDEWHITE(open, high, low, close)\n```\n\n### CDLGRAVESTONEDOJI - Gravestone Doji\n```python\ninteger = CDLGRAVESTONEDOJI(open, high, low, close)\n```\n\n### CDLHAMMER - Hammer\n```python\ninteger = CDLHAMMER(open, high, low, close)\n```\n\n### CDLHANGINGMAN - Hanging Man\n```python\ninteger = CDLHANGINGMAN(open, high, low, close)\n```\n\n### CDLHARAMI - Harami Pattern\n```python\ninteger = CDLHARAMI(open, high, low, close)\n```\n\n### CDLHARAMICROSS - Harami Cross Pattern\n```python\ninteger = CDLHARAMICROSS(open, high, low, close)\n```\n\n### CDLHIGHWAVE - High-Wave Candle\n```python\ninteger = CDLHIGHWAVE(open, high, low, close)\n```\n\n### CDLHIKKAKE - Hikkake Pattern\n```python\ninteger = CDLHIKKAKE(open, high, low, close)\n```\n\n### CDLHIKKAKEMOD - Modified Hikkake Pattern\n```python\ninteger = CDLHIKKAKEMOD(open, high, low, close)\n```\n\n### CDLHOMINGPIGEON - Homing Pigeon\n```python\ninteger = CDLHOMINGPIGEON(open, high, low, close)\n```\n\n### CDLIDENTICAL3CROWS - Identical Three Crows\n```python\ninteger = CDLIDENTICAL3CROWS(open, high, low, close)\n```\n\n### CDLINNECK - In-Neck Pattern\n```python\ninteger = CDLINNECK(open, high, low, close)\n```\n\n### CDLINVERTEDHAMMER - Inverted Hammer\n```python\ninteger = CDLINVERTEDHAMMER(open, high, low, close)\n```\n\n### CDLKICKING - Kicking\n```python\ninteger = CDLKICKING(open, high, low, close)\n```\n\n### CDLKICKINGBYLENGTH - Kicking - bull/bear determined by the longer marubozu\n```python\ninteger = CDLKICKINGBYLENGTH(open, high, low, close)\n```\n\n### CDLLADDERBOTTOM - Ladder Bottom\n```python\ninteger = CDLLADDERBOTTOM(open, high, low, close)\n```\n\n### CDLLONGLEGGEDDOJI - Long Legged Doji\n```python\ninteger = CDLLONGLEGGEDDOJI(open, high, low, close)\n```\n\n### CDLLONGLINE - Long Line Candle\n```python\ninteger = CDLLONGLINE(open, high, low, close)\n```\n\n### CDLMARUBOZU - Marubozu\n```python\ninteger = CDLMARUBOZU(open, high, low, close)\n```\n\n### CDLMATCHINGLOW - Matching Low\n```python\ninteger = CDLMATCHINGLOW(open, high, low, close)\n```\n\n### CDLMATHOLD - Mat Hold\n```python\ninteger = CDLMATHOLD(open, high, low, close, penetration=0)\n```\n\n### CDLMORNINGDOJISTAR - Morning Doji Star\n```python\ninteger = CDLMORNINGDOJISTAR(open, high, low, close, penetration=0)\n```\n\n### CDLMORNINGSTAR - Morning Star\n```python\ninteger = CDLMORNINGSTAR(open, high, low, close, penetration=0)\n```\n\n### CDLONNECK - On-Neck Pattern\n```python\ninteger = CDLONNECK(open, high, low, close)\n```\n\n### CDLPIERCING - Piercing Pattern\n```python\ninteger = CDLPIERCING(open, high, low, close)\n```\n\n### CDLRICKSHAWMAN - Rickshaw Man\n```python\ninteger = CDLRICKSHAWMAN(open, high, low, close)\n```\n\n### CDLRISEFALL3METHODS - Rising/Falling Three Methods\n```python\ninteger = CDLRISEFALL3METHODS(open, high, low, close)\n```\n\n### CDLSEPARATINGLINES - Separating Lines\n```python\ninteger = CDLSEPARATINGLINES(open, high, low, close)\n```\n\n### CDLSHOOTINGSTAR - Shooting Star\n```python\ninteger = CDLSHOOTINGSTAR(open, high, low, close)\n```\n\n### CDLSHORTLINE - Short Line Candle\n```python\ninteger = CDLSHORTLINE(open, high, low, close)\n```\n\n### CDLSPINNINGTOP - Spinning Top\n```python\ninteger = CDLSPINNINGTOP(open, high, low, close)\n```\n\n### CDLSTALLEDPATTERN - Stalled Pattern\n```python\ninteger = CDLSTALLEDPATTERN(open, high, low, close)\n```\n\n### CDLSTICKSANDWICH - Stick Sandwich\n```python\ninteger = CDLSTICKSANDWICH(open, high, low, close)\n```\n\n### CDLTAKURI - Takuri (Dragonfly Doji with very long lower shadow)\n```python\ninteger = CDLTAKURI(open, high, low, close)\n```\n\n### CDLTASUKIGAP - Tasuki Gap\n```python\ninteger = CDLTASUKIGAP(open, high, low, close)\n```\n\n### CDLTHRUSTING - Thrusting Pattern\n```python\ninteger = CDLTHRUSTING(open, high, low, close)\n```\n\n### CDLTRISTAR - Tristar Pattern\n```python\ninteger = CDLTRISTAR(open, high, low, close)\n```\n\n### CDLUNIQUE3RIVER - Unique 3 River\n```python\ninteger = CDLUNIQUE3RIVER(open, high, low, close)\n```\n\n### CDLUPSIDEGAP2CROWS - Upside Gap Two Crows\n```python\ninteger = CDLUPSIDEGAP2CROWS(open, high, low, close)\n```\n\n### CDLXSIDEGAP3METHODS - Upside/Downside Gap Three Methods\n```python\ninteger = CDLXSIDEGAP3METHODS(open, high, low, close)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)"
  },
  {
    "path": "docs/func_groups/price_transform.md",
    "content": "# Price Transform Functions\n### AVGDEV - Average Deviation\n```python\nreal = AVGDEV(real, timeperiod=14)\n```\n\n### AVGPRICE - Average Price\n```python\nreal = AVGPRICE(open, high, low, close)\n```\n\n### MEDPRICE - Median Price\n```python\nreal = MEDPRICE(high, low)\n```\n\n### TYPPRICE - Typical Price\n```python\nreal = TYPPRICE(high, low, close)\n```\n\n### WCLPRICE - Weighted Close Price\n```python\nreal = WCLPRICE(high, low, close)\n```\n\n\n[Documentation Index](../doc_index.md)\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/statistic_functions.md",
    "content": "# Statistic Functions\n### BETA - Beta\n```python\nreal = BETA(real0, real1, timeperiod=5)\n```\n\n### CORREL - Pearson's Correlation Coefficient (r)\n```python\nreal = CORREL(real0, real1, timeperiod=30)\n```\n\n### LINEARREG - Linear Regression\n```python\nreal = LINEARREG(real, timeperiod=14)\n```\n\n### LINEARREG_ANGLE - Linear Regression Angle\n```python\nreal = LINEARREG_ANGLE(real, timeperiod=14)\n```\n\n### LINEARREG_INTERCEPT - Linear Regression Intercept\n```python\nreal = LINEARREG_INTERCEPT(real, timeperiod=14)\n```\n\n### LINEARREG_SLOPE - Linear Regression Slope\n```python\nreal = LINEARREG_SLOPE(real, timeperiod=14)\n```\n\n### STDDEV - Standard Deviation\n```python\nreal = STDDEV(real, timeperiod=5, nbdev=1)\n```\n\n### TSF - Time Series Forecast\n```python\nreal = TSF(real, timeperiod=14)\n```\n\n### VAR - Variance\n```python\nreal = VAR(real, timeperiod=5, nbdev=1)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)\n"
  },
  {
    "path": "docs/func_groups/volatility_indicators.md",
    "content": "# Volatility Indicator Functions\n### ATR - Average True Range\nNOTE: The ``ATR`` function has an unstable period.  \n```python\nreal = ATR(high, low, close, timeperiod=14)\n```\n\n### NATR - Normalized Average True Range\nNOTE: The ``NATR`` function has an unstable period.  \n```python\nreal = NATR(high, low, close, timeperiod=14)\n```\n\n### TRANGE - True Range\n```python\nreal = TRANGE(high, low, close)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)"
  },
  {
    "path": "docs/func_groups/volume_indicators.md",
    "content": "# Volume Indicator Functions\n### AD - Chaikin A/D Line\n```python\nreal = AD(high, low, close, volume)\n```\n\n### ADOSC - Chaikin A/D Oscillator\n```python\nreal = ADOSC(high, low, close, volume, fastperiod=3, slowperiod=10)\n```\n\n### OBV - On Balance Volume\n```python\nreal = OBV(close, volume)\n```\n\n\n[Documentation Index](../doc_index.md)\n\n[FLOAT_RIGHTAll Function Groups](../funcs.md)"
  },
  {
    "path": "docs/funcs.md",
    "content": "# All Supported Indicators and Functions\n\n* [Overlap Studies](func_groups/overlap_studies.md)\n* [Momentum Indicators](func_groups/momentum_indicators.md)\n* [Volume Indicators](func_groups/volume_indicators.md)\n* [Volatility Indicators](func_groups/volatility_indicators.md)\n* [Price Transform](func_groups/price_transform.md)\n* [Cycle Indicators](func_groups/cycle_indicators.md)\n* [Pattern Recognition](func_groups/pattern_recognition.md)\n* [Statistic Functions](func_groups/statistic_functions.md)\n* [Math Transform](func_groups/math_transform.md)\n* [Math Operators](func_groups/math_operators.md)\n\n#### [Overlap Studies](func_groups/overlap_studies.md)\n\n```\nBBANDS               Bollinger Bands\nDEMA                 Double Exponential Moving Average\nEMA                  Exponential Moving Average\nHT_TRENDLINE         Hilbert Transform - Instantaneous Trendline\nKAMA                 Kaufman Adaptive Moving Average\nMA                   Moving average\nMAMA                 MESA Adaptive Moving Average\nMAVP                 Moving average with variable period\nMIDPOINT             MidPoint over period\nMIDPRICE             Midpoint Price over period\nSAR                  Parabolic SAR\nSAREXT               Parabolic SAR - Extended\nSMA                  Simple Moving Average\nT3                   Triple Exponential Moving Average (T3)\nTEMA                 Triple Exponential Moving Average\nTRIMA                Triangular Moving Average\nWMA                  Weighted Moving Average\n```\n\n#### [Momentum Indicators](func_groups/momentum_indicators.md)\n\n```\nADX                  Average Directional Movement Index\nADXR                 Average Directional Movement Index Rating\nAPO                  Absolute Price Oscillator\nAROON                Aroon\nAROONOSC             Aroon Oscillator\nBOP                  Balance Of Power\nCCI                  Commodity Channel Index\nCMO                  Chande Momentum Oscillator\nDX                   Directional Movement Index\nMACD                 Moving Average Convergence/Divergence\nMACDEXT              MACD with controllable MA type\nMACDFIX              Moving Average Convergence/Divergence Fix 12/26\nMFI                  Money Flow Index\nMINUS_DI             Minus Directional Indicator\nMINUS_DM             Minus Directional Movement\nMOM                  Momentum\nPLUS_DI              Plus Directional Indicator\nPLUS_DM              Plus Directional Movement\nPPO                  Percentage Price Oscillator\nROC                  Rate of change : ((price/prevPrice)-1)*100\nROCP                 Rate of change Percentage: (price-prevPrice)/prevPrice\nROCR                 Rate of change ratio: (price/prevPrice)\nROCR100              Rate of change ratio 100 scale: (price/prevPrice)*100\nRSI                  Relative Strength Index\nSTOCH                Stochastic\nSTOCHF               Stochastic Fast\nSTOCHRSI             Stochastic Relative Strength Index\nTRIX                 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA\nULTOSC               Ultimate Oscillator\nWILLR                Williams' %R\n```\n\n#### [Volume Indicators](func_groups/volume_indicators.md)\n\n```\nAD                   Chaikin A/D Line\nADOSC                Chaikin A/D Oscillator\nOBV                  On Balance Volume\n```\n\n#### [Cycle Indicators](func_groups/cycle_indicators.md)\n\n```\nHT_DCPERIOD          Hilbert Transform - Dominant Cycle Period\nHT_DCPHASE           Hilbert Transform - Dominant Cycle Phase\nHT_PHASOR            Hilbert Transform - Phasor Components\nHT_SINE              Hilbert Transform - SineWave\nHT_TRENDMODE         Hilbert Transform - Trend vs Cycle Mode\n```\n\n#### [Price Transform](func_groups/price_transform.md)\n\n```\nAVGPRICE             Average Price\nMEDPRICE             Median Price\nTYPPRICE             Typical Price\nWCLPRICE             Weighted Close Price\n```\n\n#### [Volatility Indicators](func_groups/volatility_indicators.md)\n\n```\nATR                  Average True Range\nNATR                 Normalized Average True Range\nTRANGE               True Range\n```\n\n#### [Pattern Recognition](func_groups/pattern_recognition.md)\n\n```\nCDL2CROWS            Two Crows\nCDL3BLACKCROWS       Three Black Crows\nCDL3INSIDE           Three Inside Up/Down\nCDL3LINESTRIKE       Three-Line Strike\nCDL3OUTSIDE          Three Outside Up/Down\nCDL3STARSINSOUTH     Three Stars In The South\nCDL3WHITESOLDIERS    Three Advancing White Soldiers\nCDLABANDONEDBABY     Abandoned Baby\nCDLADVANCEBLOCK      Advance Block\nCDLBELTHOLD          Belt-hold\nCDLBREAKAWAY         Breakaway\nCDLCLOSINGMARUBOZU   Closing Marubozu\nCDLCONCEALBABYSWALL  Concealing Baby Swallow\nCDLCOUNTERATTACK     Counterattack\nCDLDARKCLOUDCOVER    Dark Cloud Cover\nCDLDOJI              Doji\nCDLDOJISTAR          Doji Star\nCDLDRAGONFLYDOJI     Dragonfly Doji\nCDLENGULFING         Engulfing Pattern\nCDLEVENINGDOJISTAR   Evening Doji Star\nCDLEVENINGSTAR       Evening Star\nCDLGAPSIDESIDEWHITE  Up/Down-gap side-by-side white lines\nCDLGRAVESTONEDOJI    Gravestone Doji\nCDLHAMMER            Hammer\nCDLHANGINGMAN        Hanging Man\nCDLHARAMI            Harami Pattern\nCDLHARAMICROSS       Harami Cross Pattern\nCDLHIGHWAVE          High-Wave Candle\nCDLHIKKAKE           Hikkake Pattern\nCDLHIKKAKEMOD        Modified Hikkake Pattern\nCDLHOMINGPIGEON      Homing Pigeon\nCDLIDENTICAL3CROWS   Identical Three Crows\nCDLINNECK            In-Neck Pattern\nCDLINVERTEDHAMMER    Inverted Hammer\nCDLKICKING           Kicking\nCDLKICKINGBYLENGTH   Kicking - bull/bear determined by the longer marubozu\nCDLLADDERBOTTOM      Ladder Bottom\nCDLLONGLEGGEDDOJI    Long Legged Doji\nCDLLONGLINE          Long Line Candle\nCDLMARUBOZU          Marubozu\nCDLMATCHINGLOW       Matching Low\nCDLMATHOLD           Mat Hold\nCDLMORNINGDOJISTAR   Morning Doji Star\nCDLMORNINGSTAR       Morning Star\nCDLONNECK            On-Neck Pattern\nCDLPIERCING          Piercing Pattern\nCDLRICKSHAWMAN       Rickshaw Man\nCDLRISEFALL3METHODS  Rising/Falling Three Methods\nCDLSEPARATINGLINES   Separating Lines\nCDLSHOOTINGSTAR      Shooting Star\nCDLSHORTLINE         Short Line Candle\nCDLSPINNINGTOP       Spinning Top\nCDLSTALLEDPATTERN    Stalled Pattern\nCDLSTICKSANDWICH     Stick Sandwich\nCDLTAKURI            Takuri (Dragonfly Doji with very long lower shadow)\nCDLTASUKIGAP         Tasuki Gap\nCDLTHRUSTING         Thrusting Pattern\nCDLTRISTAR           Tristar Pattern\nCDLUNIQUE3RIVER      Unique 3 River\nCDLUPSIDEGAP2CROWS   Upside Gap Two Crows\nCDLXSIDEGAP3METHODS  Upside/Downside Gap Three Methods\n```\n\n#### [Statistic Functions](func_groups/statistic_functions.md)\n\n```\nBETA                 Beta\nCORREL               Pearson's Correlation Coefficient (r)\nLINEARREG            Linear Regression\nLINEARREG_ANGLE      Linear Regression Angle\nLINEARREG_INTERCEPT  Linear Regression Intercept\nLINEARREG_SLOPE      Linear Regression Slope\nSTDDEV               Standard Deviation\nTSF                  Time Series Forecast\nVAR                  Variance\n```\n\n#### [Math Transform](func_groups/math_transform.md)\n\n```\nACOS                 Vector Trigonometric ACos\nASIN                 Vector Trigonometric ASin\nATAN                 Vector Trigonometric ATan\nCEIL                 Vector Ceil\nCOS                  Vector Trigonometric Cos\nCOSH                 Vector Trigonometric Cosh\nEXP                  Vector Arithmetic Exp\nFLOOR                Vector Floor\nLN                   Vector Log Natural\nLOG10                Vector Log10\nSIN                  Vector Trigonometric Sin\nSINH                 Vector Trigonometric Sinh\nSQRT                 Vector Square Root\nTAN                  Vector Trigonometric Tan\nTANH                 Vector Trigonometric Tanh\n```\n\n#### [Math Operators](func_groups/math_operators.md)\n\n```\nADD                  Vector Arithmetic Add\nDIV                  Vector Arithmetic Div\nMAX                  Highest value over a specified period\nMAXINDEX             Index of highest value over a specified period\nMIN                  Lowest value over a specified period\nMININDEX             Index of lowest value over a specified period\nMINMAX               Lowest and highest values over a specified period\nMINMAXINDEX          Indexes of lowest and highest values over a specified period\nMULT                 Vector Arithmetic Mult\nSUB                  Vector Arithmetic Subtraction\nSUM                  Summation\n```\n\n[Documentation Index](doc_index.md)\n"
  },
  {
    "path": "docs/generate_html_pages.py",
    "content": "\"\"\"\nUSAGE:\n\nTo convert markdown docs into html docs:\n$ python generate_html_pages.py /path/to/gh-pages/dir\n\nTo generate pygments code highlighting stylesheet:\n$ pygmentize -f html -S [STYLE_NAME] -a .highlight > /path/to/gh-pages/stylesheets/dir/pygments_style.css\n\nTo list available style names (at python prompt)\n>>> from pygments import styles\n>>> sorted(styles.get_all_styles())\n# default, lovelace and xcode are \"normal\" styles\n\"\"\"\n\nimport os\nimport sys\nimport talib\n\nimport mistune\n\nfrom pygments import highlight\nfrom pygments.lexers import get_lexer_by_name\nfrom pygments.formatters.html import HtmlFormatter\n\nfrom bs4 import BeautifulSoup\n\nfrom talib.abstract import Function\n\n\nINPUT_DIR = os.path.dirname(os.path.realpath(__file__))\nFUNCTION_GROUPS_DIR = os.path.join(INPUT_DIR, 'func_groups')\nOUTPUT_DIR = os.path.join(INPUT_DIR, 'html')\n\n\nHEADER = '''\\\n<!DOCTYPE html>\n<html>\n\n  <head>\n    <meta charset='utf-8' />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"chrome=1\" />\n    <meta name=\"description\" content=\"TA-Lib : Python wrapper for TA-Lib (https://ta-lib.org/).\" />\n    <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"stylesheets/stylesheet.css\">\n    <title>TA-Lib</title>\n  </head>\n\n  <body>\n    <div id=\"header_wrap\" class=\"outer\">\n        <header class=\"inner\">\n            <a id=\"forkme_banner\" href=\"https://github.com/ta-lib/ta-lib-python\">View on GitHub</a>\n            <div class=\"clearfix\">\n                <ul id=\"menu\" class=\"drop\">\n                    <li><a href=\"index.html\">Home</a></li>\n                    <li><a href=\"doc_index.html\">Documentation</a></li>\n                </ul>\n            </div>\n            <br>\n            <h1 id=\"project_title\"><a href=\"https://ta-lib.github.io/ta-lib-python/\">TA-Lib</a></h1>\n            <h2 id=\"project_tagline\">Python wrapper for TA-Lib (https://ta-lib.org/).</h2>\n            <section id=\"downloads\">\n                <a class=\"zip_download_link\" href=\"https://github.com/ta-lib/ta-lib-python/zipball/master\">Download this project as a .zip file</a>\n                <a class=\"tar_download_link\" href=\"https://github.com/ta-lib/ta-lib-python/tarball/master\">Download this project as a tar.gz file</a>\n            </section>\n        </header>\n    </div>\n\n    <!-- MAIN CONTENT -->\n    <div id=\"main_content_wrap\" class=\"outer\">\n        <section id=\"main_content\" class=\"inner\">\n'''\n\nFOOTER = '''\\\n        </section>\n    </div>\n\n    <!-- FOOTER  -->\n    <div id=\"footer_wrap\" class=\"outer\">\n      <footer class=\"inner\">\n        <p class=\"copyright\">TA-Lib written by <a href=\"https://github.com/mrjbq7\">mrjbq7</a>\n        and <a href=\"https://github.com/ta-lib/ta-lib-python/network/members\">contributors</a></p>\n        \n        <p>Published with <a href=\"https://pages.github.com\">GitHub Pages</a></p>\n      </footer>\n    </div>\n\n  </body>\n</html>\n'''\n\n\ndef slugify(string):\n    return string.lower().replace(' ', '_')\n\n\ndef get_doc_links():\n    \"\"\"Returns a dictionary of function names -> upstream documentation link\"\"\"\n    tadoc_homepage = 'https://www.tadoc.org/'\n    html_file_path = os.path.join(INPUT_DIR, '.tadoc.org.html')\n    if os.path.exists(html_file_path):\n        with open(html_file_path, 'r') as f:\n            html = f.read()\n    else:\n        from urllib.request import urlopen\n\n        html = urlopen(tadoc_homepage).read()\n        with open(html_file_path, 'wb') as f:\n            f.write(html)\n\n    # find every link that's for an indicator and convert to absolute urls\n    soup = BeautifulSoup(html, 'html.parser')\n    links = [a for a in soup.find_all('a') if 'indicator' in a['href']]\n    ret = {}\n    for a in links:\n        url = ''.join([tadoc_homepage, a['href']])\n        func = url[url.rfind('/')+1:url.rfind('.')]\n        ret[func] = url\n    return ret\n\n\ndef generate_groups_markdown():\n    \"\"\"Generate and save markdown files for function group documentation\"\"\"\n    for group, group_docs in get_groups_markdown().items():\n        file_path = os.path.join(FUNCTION_GROUPS_DIR, '%s.md' % group)\n        with open(file_path, 'w') as f:\n            f.write(group_docs)\n\n\ndef get_groups_markdown():\n    \"\"\"Generate markdown for function groups using the Abstract API\n\n    Returns a dictionary of group_name -> documentation for group functions\n    \"\"\"\n    def unpluralize(noun):\n        if noun.endswith('s'):\n            if len(noun) > 2 and noun[-2] not in [\"'\", 'e']:\n                return noun[:-1]\n        return noun\n\n    doc_links = get_doc_links()\n    ret = {}\n    for group, funcs in talib.get_function_groups().items():\n        h1 = '# %s' % unpluralize(group)\n        h1 = h1 + ' Functions' if 'Function' not in h1 else h1 + 's'\n        group_docs = [h1]\n        for func in funcs:\n            # figure out this function's options\n            f = Function(func)\n            inputs = f.info['input_names']\n            if 'price' in inputs and 'prices' in inputs:\n                names = [inputs['price']]\n                names.extend(inputs['prices'])\n                input_names = ', '.join(names)\n            elif 'prices' in inputs:\n                input_names = ', '.join(inputs['prices'])\n            else:\n                input_names = ', '.join([x for x in inputs.values() if x])\n\n            params = ', '.join(\n                ['%s=%i' % (param, default)\n                 for param, default in f.info['parameters'].items()])\n            outputs = ', '.join(f.info['output_names'])\n\n            # print the header\n            group_docs.append('### %s - %s' % (func, f.info['display_name']))\n\n            if f.function_flags and 'Function has an unstable period' in f.function_flags:\n                group_docs.append('NOTE: The ``%s`` function has an unstable period.  ' % func)\n\n            # print the code definition block\n            group_docs.append(\"```python\")\n            if params:\n                group_docs.append('%s = %s(%s, %s)' % (\n                    outputs, func.upper(), input_names, params))\n            else:\n                group_docs.append('%s = %s(%s)' % (\n                    outputs, func.upper(), input_names))\n            group_docs.append(\"```\\n\")\n\n\n            # print extra info if we can\n            if func in doc_links:\n                group_docs.append('Learn more about the %s at [tadoc.org](%s).  ' % (\n                    f.info['display_name'], doc_links[func]))\n\n        group_docs.append('\\n[Documentation Index](../doc_index.md)')\n        group_docs.append('[FLOAT_RIGHTAll Function Groups](../funcs.md)')\n\n        ret[slugify(group)] = '\\n'.join(group_docs) + '\\n'\n    return ret\n\n\ndef get_markdown_file_paths():\n    file_names = [\n        'index.md',\n        'doc_index.md',\n        'install.md',\n        'func.md',\n        'funcs.md',\n        'abstract.md',\n    ]\n    file_names.extend(\n        ['func_groups/%s' % x for x in os.listdir(FUNCTION_GROUPS_DIR) if x.endswith('.md')]\n    )\n    return [os.path.join(INPUT_DIR, fn) for fn in file_names]\n\n\ndef _get_markdown_renderer():\n    \"\"\"Returns a function to convert a Markdown string into pygments-highlighted HTML\"\"\"\n    class PygmentsHighlighter(mistune.HTMLRenderer):\n        def block_code(self, code, info=None):\n            if not info:\n                return '\\n<pre><code>%s</code></pre>\\n' % mistune.escape(code)\n            lexer = get_lexer_by_name(info, stripall=True)\n            formatter = HtmlFormatter(classprefix='highlight ')\n            return highlight(code, lexer, formatter)\n    return mistune.Markdown(renderer=PygmentsHighlighter())\n\n\ndef run_convert_to_html(output_dir):\n    \"\"\"Converts markdown files into their respective html files\"\"\"\n    markdown_to_html = _get_markdown_renderer()\n    for md_file_path in get_markdown_file_paths():\n        with open(md_file_path, 'r') as f:\n            html = markdown_to_html(f.read())\n            html = html.replace('.md\">', '.html\">')\n\n        head = HEADER\n        if 'func_groups' in md_file_path:\n            head = head.replace('\"index.html\"', '\"../index.html\"')\n            head = head.replace('\"doc_index.html\"', '\"../doc_index.html\"')\n            head = head.replace('\"stylesheets/', '\"../stylesheets/')\n\n        lines = html.split('\\n')\n        for i, line in enumerate(lines):\n            if 'FLOAT_RIGHT' in line:\n                line = line.replace('FLOAT_RIGHT', '')\n                lines[i] = line.replace('<a ', '<a class=\"float-right\" ')\n        html = ''.join([head, '\\n'.join(lines), FOOTER])\n\n        save_file_path = os.path.abspath(\n            md_file_path.replace(INPUT_DIR, output_dir).replace('.md', '.html')\n        )\n        if not os.path.exists(os.path.dirname(save_file_path)):\n            os.mkdir(os.path.dirname(save_file_path))\n        with open(save_file_path, 'w') as f:\n            f.write(html)\n            print('Wrote %s' % save_file_path)\n\n\nif __name__ == '__main__':\n    generate_groups_markdown()\n    run_convert_to_html(\n        OUTPUT_DIR if len(sys.argv) == 1 else sys.argv[1]\n    )\n"
  },
  {
    "path": "docs/index.md",
    "content": "# About\n\nThis is a Python wrapper for [TA-LIB](https://ta-lib.org) based on Cython\ninstead of SWIG. From the homepage:\n\n> TA-Lib is widely used by trading software developers requiring to perform\n> technical analysis of financial market data.\n\n> * Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger\n>   Bands, etc.\n> * Candlestick pattern recognition\n> * Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET\n\nThe original Python bindings use [SWIG](https://swig.org) which unfortunately\nare difficult to install and aren't as efficient as they could be. Therefore\nthis project uses Cython and Numpy to efficiently and cleanly bind to TA-Lib\n-- producing results 2-4 times faster than the SWIG interface.\n\n#### [Install TA-Lib](install.md) or [Read the Docs](doc_index.md)\n\n## Examples\n\nSimilar to TA-Lib, the function interface provides a lightweight wrapper of\nthe exposed TA-Lib indicators.\n\nEach function returns an output array and have default values for their\nparameters, unless specified as keyword arguments. Typically, these functions\nwill have an initial \"lookback\" period (a required number of observations\nbefore an output is generated) set to ``NaN``.\n\nAll of the following examples use the function API:\n\n```python\nimport numpy\nimport talib\n\nclose = numpy.random.random(100)\n```\n\nCalculate a simple moving average of the close prices:\n\n```python\noutput = talib.SMA(close)\n```\n\nCalculating bollinger bands, with triple exponential moving average:\n\n```python\nfrom talib import MA_Type\n\nupper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3)\n```\n\nCalculating momentum of the close prices, with a time period of 5:\n\n```python\noutput = talib.MOM(close, timeperiod=5)\n```\n\n## Abstract API Quick Start\n\nIf you're already familiar with using the function API, you should feel right\nat home using the abstract API. Every function takes the same input, passed\nas a dictionary of Numpy arrays:\n\n```python\nimport numpy as np\n# note that all ndarrays must be the same length!\ninputs = {\n    'open': np.random.random(100),\n    'high': np.random.random(100),\n    'low': np.random.random(100),\n    'close': np.random.random(100),\n    'volume': np.random.random(100)\n}\n```\n\nFunctions can either be imported directly or instantiated by name:\n\n```python\nfrom talib import abstract\nsma = abstract.SMA\nsma = abstract.Function('sma')\n```\n\nFrom there, calling functions is basically the same as the function API:\n\n```python\nfrom talib.abstract import *\noutput = SMA(input_arrays, timeperiod=25) # calculate on close prices by default\noutput = SMA(input_arrays, timeperiod=25, price='open') # calculate on opens\nupper, middle, lower = BBANDS(input_arrays, 20, 2, 2)\nslowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0) # uses high, low, close by default\nslowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])\n```\n\nLearn about more advanced usage of TA-Lib [here](abstract.md).\n\n## Supported Indicators\n\nWe can show all the TA functions supported by TA-Lib, either as a ``list`` or\nas a ``dict`` sorted by group (e.g. \"Overlap Studies\", \"Momentum Indicators\",\netc):\n\n```python\nimport talib\n\nprint talib.get_functions()\nprint talib.get_function_groups()\n```\n\n### Function Groups\n\n* [Overlap Studies](func_groups/overlap_studies.md)\n* [Momentum Indicators](func_groups/momentum_indicators.md)\n* [Volume Indicators](func_groups/volume_indicators.md)\n* [Volatility Indicators](func_groups/volatility_indicators.md)\n* [Price Transform](func_groups/price_transform.md)\n* [Cycle Indicators](func_groups/cycle_indicators.md)\n* [Pattern Recognition](func_groups/pattern_recognition.md)\n* [Statistic Functions](func_groups/statistic_functions.md)\n* [Math Transform](func_groups/math_transform.md)\n* [Math Operators](func_groups/math_operators.md)\n\n#### [Overlap Studies](func_groups/overlap_studies.md)\n\n```\nBBANDS               Bollinger Bands\nDEMA                 Double Exponential Moving Average\nEMA                  Exponential Moving Average\nHT_TRENDLINE         Hilbert Transform - Instantaneous Trendline\nKAMA                 Kaufman Adaptive Moving Average\nMA                   Moving average\nMAMA                 MESA Adaptive Moving Average\nMAVP                 Moving average with variable period\nMIDPOINT             MidPoint over period\nMIDPRICE             Midpoint Price over period\nSAR                  Parabolic SAR\nSAREXT               Parabolic SAR - Extended\nSMA                  Simple Moving Average\nT3                   Triple Exponential Moving Average (T3)\nTEMA                 Triple Exponential Moving Average\nTRIMA                Triangular Moving Average\nWMA                  Weighted Moving Average\n```\n\n#### [Momentum Indicators](func_groups/momentum_indicators.md)\n\n```\nADX                  Average Directional Movement Index\nADXR                 Average Directional Movement Index Rating\nAPO                  Absolute Price Oscillator\nAROON                Aroon\nAROONOSC             Aroon Oscillator\nBOP                  Balance Of Power\nCCI                  Commodity Channel Index\nCMO                  Chande Momentum Oscillator\nDX                   Directional Movement Index\nMACD                 Moving Average Convergence/Divergence\nMACDEXT              MACD with controllable MA type\nMACDFIX              Moving Average Convergence/Divergence Fix 12/26\nMFI                  Money Flow Index\nMINUS_DI             Minus Directional Indicator\nMINUS_DM             Minus Directional Movement\nMOM                  Momentum\nPLUS_DI              Plus Directional Indicator\nPLUS_DM              Plus Directional Movement\nPPO                  Percentage Price Oscillator\nROC                  Rate of change : ((price/prevPrice)-1)*100\nROCP                 Rate of change Percentage: (price-prevPrice)/prevPrice\nROCR                 Rate of change ratio: (price/prevPrice)\nROCR100              Rate of change ratio 100 scale: (price/prevPrice)*100\nRSI                  Relative Strength Index\nSTOCH                Stochastic\nSTOCHF               Stochastic Fast\nSTOCHRSI             Stochastic Relative Strength Index\nTRIX                 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA\nULTOSC               Ultimate Oscillator\nWILLR                Williams' %R\n```\n\n#### [Volume Indicators](func_groups/volume_indicators.md)\n\n```\nAD                   Chaikin A/D Line\nADOSC                Chaikin A/D Oscillator\nOBV                  On Balance Volume\n```\n\n#### [Volatility Indicators](func_groups/volatility_indicators.md)\n\n```\nATR                  Average True Range\nNATR                 Normalized Average True Range\nTRANGE               True Range\n```\n\n#### [Price Transform](func_groups/price_transform.md)\n\n```\nAVGPRICE             Average Price\nMEDPRICE             Median Price\nTYPPRICE             Typical Price\nWCLPRICE             Weighted Close Price\n```\n\n#### [Cycle Indicators](func_groups/cycle_indicators.md)\n\n```\nHT_DCPERIOD          Hilbert Transform - Dominant Cycle Period\nHT_DCPHASE           Hilbert Transform - Dominant Cycle Phase\nHT_PHASOR            Hilbert Transform - Phasor Components\nHT_SINE              Hilbert Transform - SineWave\nHT_TRENDMODE         Hilbert Transform - Trend vs Cycle Mode\n```\n\n#### [Pattern Recognition](func_groups/pattern_recognition.md)\n\n```\nCDL2CROWS            Two Crows\nCDL3BLACKCROWS       Three Black Crows\nCDL3INSIDE           Three Inside Up/Down\nCDL3LINESTRIKE       Three-Line Strike\nCDL3OUTSIDE          Three Outside Up/Down\nCDL3STARSINSOUTH     Three Stars In The South\nCDL3WHITESOLDIERS    Three Advancing White Soldiers\nCDLABANDONEDBABY     Abandoned Baby\nCDLADVANCEBLOCK      Advance Block\nCDLBELTHOLD          Belt-hold\nCDLBREAKAWAY         Breakaway\nCDLCLOSINGMARUBOZU   Closing Marubozu\nCDLCONCEALBABYSWALL  Concealing Baby Swallow\nCDLCOUNTERATTACK     Counterattack\nCDLDARKCLOUDCOVER    Dark Cloud Cover\nCDLDOJI              Doji\nCDLDOJISTAR          Doji Star\nCDLDRAGONFLYDOJI     Dragonfly Doji\nCDLENGULFING         Engulfing Pattern\nCDLEVENINGDOJISTAR   Evening Doji Star\nCDLEVENINGSTAR       Evening Star\nCDLGAPSIDESIDEWHITE  Up/Down-gap side-by-side white lines\nCDLGRAVESTONEDOJI    Gravestone Doji\nCDLHAMMER            Hammer\nCDLHANGINGMAN        Hanging Man\nCDLHARAMI            Harami Pattern\nCDLHARAMICROSS       Harami Cross Pattern\nCDLHIGHWAVE          High-Wave Candle\nCDLHIKKAKE           Hikkake Pattern\nCDLHIKKAKEMOD        Modified Hikkake Pattern\nCDLHOMINGPIGEON      Homing Pigeon\nCDLIDENTICAL3CROWS   Identical Three Crows\nCDLINNECK            In-Neck Pattern\nCDLINVERTEDHAMMER    Inverted Hammer\nCDLKICKING           Kicking\nCDLKICKINGBYLENGTH   Kicking - bull/bear determined by the longer marubozu\nCDLLADDERBOTTOM      Ladder Bottom\nCDLLONGLEGGEDDOJI    Long Legged Doji\nCDLLONGLINE          Long Line Candle\nCDLMARUBOZU          Marubozu\nCDLMATCHINGLOW       Matching Low\nCDLMATHOLD           Mat Hold\nCDLMORNINGDOJISTAR   Morning Doji Star\nCDLMORNINGSTAR       Morning Star\nCDLONNECK            On-Neck Pattern\nCDLPIERCING          Piercing Pattern\nCDLRICKSHAWMAN       Rickshaw Man\nCDLRISEFALL3METHODS  Rising/Falling Three Methods\nCDLSEPARATINGLINES   Separating Lines\nCDLSHOOTINGSTAR      Shooting Star\nCDLSHORTLINE         Short Line Candle\nCDLSPINNINGTOP       Spinning Top\nCDLSTALLEDPATTERN    Stalled Pattern\nCDLSTICKSANDWICH     Stick Sandwich\nCDLTAKURI            Takuri (Dragonfly Doji with very long lower shadow)\nCDLTASUKIGAP         Tasuki Gap\nCDLTHRUSTING         Thrusting Pattern\nCDLTRISTAR           Tristar Pattern\nCDLUNIQUE3RIVER      Unique 3 River\nCDLUPSIDEGAP2CROWS   Upside Gap Two Crows\nCDLXSIDEGAP3METHODS  Upside/Downside Gap Three Methods\n```\n\n#### [Statistic Functions](func_groups/statistic_functions.md)\n\n```\nBETA                 Beta\nCORREL               Pearson's Correlation Coefficient (r)\nLINEARREG            Linear Regression\nLINEARREG_ANGLE      Linear Regression Angle\nLINEARREG_INTERCEPT  Linear Regression Intercept\nLINEARREG_SLOPE      Linear Regression Slope\nSTDDEV               Standard Deviation\nTSF                  Time Series Forecast\nVAR                  Variance\n```\n"
  },
  {
    "path": "docs/install.md",
    "content": "# Installation\n\nYou can install from PyPI:\n\n```\n$ pip install TA-Lib\n```\n\nOr checkout the sources and run ``setup.py`` yourself:\n\n```\n$ python setup.py install\n```\n\n### Troubleshooting Install Errors\n\n```\nfunc.c:256:28: fatal error: ta-lib/ta_libc.h: No such file or directory\ncompilation terminated.\n```\n\nIf you get build errors like this, it typically means that it can't find the\nunderlying ``TA-Lib`` library and needs to be installed:\n\n# Dependencies\nTo use TA-Lib for python, you need to have the [TA-Lib](https://ta-lib.org/hdr_dw.html)\nalready installed:\n\n#### Mac OS X\n```\n$ brew install ta-lib\n```\n\n#### Windows\nDownload [ta-lib-0.4.0-msvc.zip](https://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-msvc.zip)\nand unzip to ``C:\\ta-lib``\n\n#### Linux\nDownload [ta-lib-0.4.0-src.tar.gz](https://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz) and:\n```\n$ tar zxvf ta-lib-0.4.0-src.tar.gz\n$ cd ta-lib\n$ ./configure --prefix=/usr\n$ make\n$ sudo make install\n```\n\n> If you build ``TA-Lib`` using ``make -jX`` it will fail but that's OK!\n> Simply rerun ``make -jX`` followed by ``[sudo] make install``.\n\n[Documentation Index](doc_index.md)\n[FLOAT_RIGHTNext: Using the Function API](func.md)\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[build-system]\nrequires = [\"setuptools\", \"wheel\", \"Cython\", \"numpy\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[project]\nname = \"TA-Lib\"\nversion = \"0.6.9\"\ndescription = \"Python wrapper for TA-Lib\"\nreadme = \"README.md\"\nlicense-files = [\"LICENSE\"]\nauthors = [\n    {name = \"John Benediktsson\", email = \"mrjbq7@gmail.com\"}\n]\nurls = {homepage = \"http://github.com/ta-lib/ta-lib-python\", download = \"https://github.com/ta-lib/ta-lib-python/releases\"}\nclassifiers = [\n    \"Development Status :: 5 - Production/Stable\",\n    \"Operating System :: Unix\",\n    \"Operating System :: POSIX\",\n    \"Operating System :: MacOS :: MacOS X\",\n    \"Operating System :: Microsoft :: Windows\",\n    \"Programming Language :: Python\",\n    \"Programming Language :: Python :: 3\",\n    \"Programming Language :: Python :: 3.9\",\n    \"Programming Language :: Python :: 3.10\",\n    \"Programming Language :: Python :: 3.11\",\n    \"Programming Language :: Python :: 3.12\",\n    \"Programming Language :: Python :: 3.13\",\n    \"Programming Language :: Python :: 3.14\",\n    \"Programming Language :: Cython\",\n    \"Topic :: Office/Business :: Financial\",\n    \"Topic :: Scientific/Engineering :: Mathematics\",\n    \"Intended Audience :: Developers\",\n    \"Intended Audience :: Science/Research\",\n    \"Intended Audience :: Financial and Insurance Industry\",\n]\ndependencies = [\n    \"build\",\n    \"numpy\",\n]\nrequires-python = '>=3.9'\n\n[tool.setuptools]\npackages = [\"talib\"]\npackage-data = {\"talib\" = [\"_ta_lib.pyi\", \"py.typed\", \"abstract.pyi\"]}\n"
  },
  {
    "path": "requirements.txt",
    "content": "numpy\nCython\n"
  },
  {
    "path": "requirements_dev.txt",
    "content": "-r requirements.txt\nbeautifulsoup4\nmistune\nPygments\nbuild\ncython\n"
  },
  {
    "path": "requirements_test.txt",
    "content": "-r requirements.txt\npandas\npytest\npolars\n"
  },
  {
    "path": "setup.py",
    "content": "#!/usr/bin/env python\n\nimport sys\nimport os\nimport os.path\nimport warnings\n\nfrom setuptools import setup, Extension\n\nimport numpy\n\nplatform_supported = False\n\nlib_talib_name = 'ta-lib'               # the name as of TA-Lib 0.6.1\n\nif any(s in sys.platform for s in ['darwin', 'linux', 'bsd', 'sunos']):\n    platform_supported = True\n    include_dirs = [\n        '/usr/include',\n        '/usr/local/include',\n        '/opt/include',\n        '/opt/local/include',\n        '/opt/homebrew/include',\n        '/opt/homebrew/opt/ta-lib/include',\n    ]\n    library_dirs = [\n        '/usr/lib',\n        '/usr/local/lib',\n        '/usr/lib64',\n        '/usr/local/lib64',\n        '/opt/lib',\n        '/opt/local/lib',\n        '/opt/homebrew/lib',\n        '/opt/homebrew/opt/ta-lib/lib',\n    ]\n\nelif sys.platform == \"win32\":\n    platform_supported = True\n    lib_talib_name = 'ta-lib-static'\n    include_dirs = [\n        r\"c:\\ta-lib\\c\\include\",\n        r\"c:\\Program Files\\TA-Lib\\include\",\n        r\"c:\\Program Files (x86)\\TA-Lib\\include\",\n    ]\n    library_dirs = [\n        r\"c:\\ta-lib\\c\\lib\",\n        r\"c:\\Program Files\\TA-Lib\\lib\",\n        r\"c:\\Program Files (x86)\\TA-Lib\\lib\",\n    ]\n\nif 'TA_INCLUDE_PATH' in os.environ:\n    include_dirs = os.environ['TA_INCLUDE_PATH'].split(os.pathsep)\n\nif 'TA_LIBRARY_PATH' in os.environ:\n    library_dirs = os.environ['TA_LIBRARY_PATH'].split(os.pathsep)\n\nif not platform_supported:\n    raise NotImplementedError(sys.platform)\n\nfor path in library_dirs:\n    try:\n        files = os.listdir(path)\n        if any(lib_talib_name in f for f in files):\n            break\n    except OSError:\n        pass\nelse:\n    warnings.warn('Cannot find ta-lib library, installation may fail.')\n\n# Get the Cython build_ext or fall back to setuptools build_ext\ntry:\n    from Cython.Distutils import build_ext\n    has_cython = True\nexcept ImportError:\n    from setuptools.command.build_ext import build_ext\n    has_cython = False\n\nclass NumpyBuildExt(build_ext):\n    \"\"\"\n    Custom build_ext command that adds numpy's include_dir to extensions.\n    \"\"\"\n\n    def build_extensions(self):\n        \"\"\"\n        Add numpy's include directory to Extension includes.\n        \"\"\"\n        numpy_incl = numpy.get_include()\n        for ext in self.extensions:\n            ext.include_dirs.append(numpy_incl)\n\n        super().build_extensions()\n\ncmdclass = {'build_ext': NumpyBuildExt}\n\next_modules = [\n    Extension(\n        'talib._ta_lib',\n        ['talib/_ta_lib.pyx' if has_cython else 'talib/_ta_lib.c'],\n        include_dirs=include_dirs,\n        library_dirs=library_dirs,\n        libraries=[lib_talib_name],\n        runtime_library_dirs=[] if sys.platform == 'win32' else library_dirs)\n]\n\nsetup(\n    ext_modules=ext_modules,\n    cmdclass=cmdclass,\n)\n"
  },
  {
    "path": "talib/__init__.py",
    "content": "\nimport atexit\nfrom itertools import chain\nfrom functools import wraps\n\n# If polars is available, wrap talib functions so that they support\n# polars.Series input\ntry:\n    from polars import Series as _pl_Series\nexcept ImportError as import_error:\n    try:\n        if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars':\n            # Propagate the error when the module exists but failed to be imported.\n            raise import_error\n    # `ModuleNotFoundError` was introduced in Python 3.6.\n    except NameError:\n        pass\n\n    # polars not available, nothing to wrap\n    _pl_Series = None\n\n# If pandas is available, wrap talib functions so that they support\n# pandas.Series input\ntry:\n    from pandas import Series as _pd_Series\nexcept ImportError as import_error:\n    try:\n        if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas':\n            # Propagate the error when the module exists but failed to be imported.\n            raise import_error\n    # `ModuleNotFoundError` was introduced in Python 3.6.\n    except NameError:\n        pass\n\n    # pandas not available, nothing to wrap\n    _pd_Series = None\n\nif _pl_Series is not None or _pd_Series is not None:\n\n    def _wrapper(func):\n        @wraps(func)\n        def wrapper(*args, **kwds):\n\n            if _pl_Series is not None:\n                use_pl = any(isinstance(arg, _pl_Series) for arg in args) or \\\n                         any(isinstance(v, _pl_Series) for v in kwds.values())\n            else:\n                use_pl = False\n\n            if _pd_Series is not None:\n                use_pd = any(isinstance(arg, _pd_Series) for arg in args) or \\\n                         any(isinstance(v, _pd_Series) for v in kwds.values())\n            else:\n                use_pd = False\n\n            if use_pl and use_pd:\n                raise Exception(\"Cannot mix polars and pandas\")\n\n            # Use float64 values if polars or pandas, else use values as passed\n            if use_pl:\n                _args = [arg.to_numpy().astype(float) if isinstance(arg, _pl_Series) else\n                         arg for arg in args]\n                _kwds = {k: v.to_numpy().astype(float) if isinstance(v, _pl_Series) else\n                            v for k, v in kwds.items()}\n\n            elif use_pd:\n                index = next(arg.index\n                             for arg in chain(args, kwds.values())\n                             if isinstance(arg, _pd_Series))\n\n                _args = [arg.to_numpy().astype(float) if isinstance(arg, _pd_Series) else\n                         arg for arg in args]\n                _kwds = {k: v.to_numpy().astype(float) if isinstance(v, _pd_Series) else\n                            v for k, v in kwds.items()}\n\n            else:\n                _args = args\n                _kwds = kwds\n\n            result = func(*_args, **_kwds)\n\n            # check to see if we got a streaming result\n            first_result = result[0] if isinstance(result, tuple) else result\n            is_streaming_fn_result = not hasattr(first_result, '__len__')\n            if is_streaming_fn_result:\n                return result\n\n            # Series was passed in, Series gets out\n            if use_pl:\n                if isinstance(result, tuple):\n                    return tuple(_pl_Series(arr) for arr in result)\n                else:\n                    return _pl_Series(result)\n\n            elif use_pd:\n                if isinstance(result, tuple):\n                    return tuple(_pd_Series(arr, index=index) for arr in result)\n                else:\n                    return _pd_Series(result, index=index)\n\n            else:\n                return result\n\n        return wrapper\nelse:\n    _wrapper = lambda x: x\n\n\nfrom ._ta_lib import (\n    _ta_initialize, _ta_shutdown, MA_Type, __ta_version__,\n    _ta_set_unstable_period as set_unstable_period,\n    _ta_get_unstable_period as get_unstable_period,\n    _ta_set_compatibility as set_compatibility,\n    _ta_get_compatibility as get_compatibility,\n    __TA_FUNCTION_NAMES__\n)\n\n# import all the func and stream functions\nfrom ._ta_lib import *\n\n# wrap them for polars or pandas support\nfunc = __import__(\"_ta_lib\", globals(), locals(), __TA_FUNCTION_NAMES__, level=1)\nfor func_name in __TA_FUNCTION_NAMES__:\n    wrapped_func = _wrapper(getattr(func, func_name))\n    setattr(func, func_name, wrapped_func)\n    globals()[func_name] = wrapped_func\n\nstream_func_names = ['stream_%s' % fname for fname in __TA_FUNCTION_NAMES__]\nstream = __import__(\"stream\", globals(), locals(), stream_func_names, level=1)\nfor func_name, stream_func_name in zip(__TA_FUNCTION_NAMES__, stream_func_names):\n    wrapped_func = _wrapper(getattr(stream, func_name))\n    setattr(stream, func_name, wrapped_func)\n    globals()[stream_func_name] = wrapped_func\n\n__version__ = '0.6.9'\n\n# In order to use this python library, talib (i.e. this __file__) will be\n# imported at some point, either explicitly or indirectly via talib.func\n# or talib.abstract. Here, we handle initializing and shutting down the\n# underlying TA-Lib. Initialization happens on import, before any other TA-Lib\n# functions are called. Finally, when the python process exits, we shutdown\n# the underlying TA-Lib.\n\n_ta_initialize()\natexit.register(_ta_shutdown)\n\n__function_groups__ = {\n    'Cycle Indicators': [\n        'HT_DCPERIOD',\n        'HT_DCPHASE',\n        'HT_PHASOR',\n        'HT_SINE',\n        'HT_TRENDMODE',\n        ],\n    'Math Operators': [\n        'ADD',\n        'DIV',\n        'MAX',\n        'MAXINDEX',\n        'MIN',\n        'MININDEX',\n        'MINMAX',\n        'MINMAXINDEX',\n        'MULT',\n        'SUB',\n        'SUM',\n        ],\n    'Math Transform': [\n        'ACOS',\n        'ASIN',\n        'ATAN',\n        'CEIL',\n        'COS',\n        'COSH',\n        'EXP',\n        'FLOOR',\n        'LN',\n        'LOG10',\n        'SIN',\n        'SINH',\n        'SQRT',\n        'TAN',\n        'TANH',\n        ],\n    'Momentum Indicators': [\n        'ADX',\n        'ADXR',\n        'APO',\n        'AROON',\n        'AROONOSC',\n        'BOP',\n        'CCI',\n        'CMO',\n        'DX',\n        'IMI',\n        'MACD',\n        'MACDEXT',\n        'MACDFIX',\n        'MFI',\n        'MINUS_DI',\n        'MINUS_DM',\n        'MOM',\n        'PLUS_DI',\n        'PLUS_DM',\n        'PPO',\n        'ROC',\n        'ROCP',\n        'ROCR',\n        'ROCR100',\n        'RSI',\n        'STOCH',\n        'STOCHF',\n        'STOCHRSI',\n        'TRIX',\n        'ULTOSC',\n        'WILLR',\n        ],\n    'Overlap Studies': [\n        'ACCBANDS',\n        'BBANDS',\n        'DEMA',\n        'EMA',\n        'HT_TRENDLINE',\n        'KAMA',\n        'MA',\n        'MAMA',\n        'MAVP',\n        'MIDPOINT',\n        'MIDPRICE',\n        'SAR',\n        'SAREXT',\n        'SMA',\n        'T3',\n        'TEMA',\n        'TRIMA',\n        'WMA',\n        ],\n    'Pattern Recognition': [\n        'CDL2CROWS',\n        'CDL3BLACKCROWS',\n        'CDL3INSIDE',\n        'CDL3LINESTRIKE',\n        'CDL3OUTSIDE',\n        'CDL3STARSINSOUTH',\n        'CDL3WHITESOLDIERS',\n        'CDLABANDONEDBABY',\n        'CDLADVANCEBLOCK',\n        'CDLBELTHOLD',\n        'CDLBREAKAWAY',\n        'CDLCLOSINGMARUBOZU',\n        'CDLCONCEALBABYSWALL',\n        'CDLCOUNTERATTACK',\n        'CDLDARKCLOUDCOVER',\n        'CDLDOJI',\n        'CDLDOJISTAR',\n        'CDLDRAGONFLYDOJI',\n        'CDLENGULFING',\n        'CDLEVENINGDOJISTAR',\n        'CDLEVENINGSTAR',\n        'CDLGAPSIDESIDEWHITE',\n        'CDLGRAVESTONEDOJI',\n        'CDLHAMMER',\n        'CDLHANGINGMAN',\n        'CDLHARAMI',\n        'CDLHARAMICROSS',\n        'CDLHIGHWAVE',\n        'CDLHIKKAKE',\n        'CDLHIKKAKEMOD',\n        'CDLHOMINGPIGEON',\n        'CDLIDENTICAL3CROWS',\n        'CDLINNECK',\n        'CDLINVERTEDHAMMER',\n        'CDLKICKING',\n        'CDLKICKINGBYLENGTH',\n        'CDLLADDERBOTTOM',\n        'CDLLONGLEGGEDDOJI',\n        'CDLLONGLINE',\n        'CDLMARUBOZU',\n        'CDLMATCHINGLOW',\n        'CDLMATHOLD',\n        'CDLMORNINGDOJISTAR',\n        'CDLMORNINGSTAR',\n        'CDLONNECK',\n        'CDLPIERCING',\n        'CDLRICKSHAWMAN',\n        'CDLRISEFALL3METHODS',\n        'CDLSEPARATINGLINES',\n        'CDLSHOOTINGSTAR',\n        'CDLSHORTLINE',\n        'CDLSPINNINGTOP',\n        'CDLSTALLEDPATTERN',\n        'CDLSTICKSANDWICH',\n        'CDLTAKURI',\n        'CDLTASUKIGAP',\n        'CDLTHRUSTING',\n        'CDLTRISTAR',\n        'CDLUNIQUE3RIVER',\n        'CDLUPSIDEGAP2CROWS',\n        'CDLXSIDEGAP3METHODS',\n        ],\n    'Price Transform': [\n        'AVGDEV',\n        'AVGPRICE',\n        'MEDPRICE',\n        'TYPPRICE',\n        'WCLPRICE',\n        ],\n    'Statistic Functions': [\n        'BETA',\n        'CORREL',\n        'LINEARREG',\n        'LINEARREG_ANGLE',\n        'LINEARREG_INTERCEPT',\n        'LINEARREG_SLOPE',\n        'STDDEV',\n        'TSF',\n        'VAR',\n        ],\n    'Volatility Indicators': [\n        'ATR',\n        'NATR',\n        'TRANGE',\n        ],\n    'Volume Indicators': [\n        'AD',\n        'ADOSC',\n        'OBV'\n        ],\n    }\n\ndef get_functions():\n    \"\"\"\n    Returns a list of all the functions supported by TALIB\n    \"\"\"\n    ret = []\n    for group in __function_groups__:\n        ret.extend(__function_groups__[group])\n    return ret\n\ndef get_function_groups():\n    \"\"\"\n    Returns a dict with keys of function-group names and values of lists\n    of function names ie {'group_names': ['function_names']}\n    \"\"\"\n    return __function_groups__.copy()\n\n__all__ = ['get_functions', 'get_function_groups'] + __TA_FUNCTION_NAMES__ + [\"stream_%s\" % name for name in __TA_FUNCTION_NAMES__]\n"
  },
  {
    "path": "talib/_abstract.pxi",
    "content": "'''\nThis file Copyright (c) 2013 Brian A Cappello <briancappello at gmail>\n'''\nimport math\nimport threading\ntry:\n    from collections import OrderedDict\nexcept ImportError: # handle python 2.6 and earlier\n    from ordereddict import OrderedDict\nfrom cython.operator cimport dereference as deref\nimport numpy\nimport sys\n\ncimport numpy as np\ncimport _ta_lib as lib\n# NOTE: _ta_check_success, MA_Type is defined in _common.pxi\n\nnp.import_array() # Initialize the NumPy C API\n\n# lookup for TALIB input parameters which don't define expected price series inputs\n__INPUT_PRICE_SERIES_DEFAULTS = {'price':   'close',\n                                 'price0':  'high',\n                                 'price1':  'low',\n                                 'periods': 'periods', # only used by MAVP; not a price series!\n                                 }\n\n__INPUT_ARRAYS_TYPES = [dict]\n__ARRAY_TYPES = [np.ndarray]\n\n# allow use of pandas.DataFrame for input arrays\ntry:\n    import pandas\n    __INPUT_ARRAYS_TYPES.append(pandas.DataFrame)\n    __ARRAY_TYPES.append(pandas.Series)\n    __PANDAS_DATAFRAME = pandas.DataFrame\n    __PANDAS_SERIES = pandas.Series\nexcept ImportError as import_error:\n    try:\n        if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas':\n            # Propagate the error when the module exists but failed to be imported.\n            raise import_error\n    # `ModuleNotFoundError` was introduced in Python 3.6.\n    except NameError:\n        pass\n\n    __PANDAS_DATAFRAME = None\n    __PANDAS_SERIES = None\n\n# allow use of polars.DataFrame for input arrays\ntry:\n    import polars\n    __INPUT_ARRAYS_TYPES.append(polars.DataFrame)\n    __ARRAY_TYPES.append(polars.Series)\n    __POLARS_DATAFRAME = polars.DataFrame\n    __POLARS_SERIES = polars.Series\nexcept ImportError as import_error:\n    try:\n        if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars':\n            # Propagate the error when the module exists but failed to be imported.\n            raise import_error\n    # `ModuleNotFoundError` was introduced in Python 3.6.\n    except NameError:\n        pass\n\n    __POLARS_DATAFRAME = None\n    __POLARS_SERIES = None\n\n__INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES)\n__ARRAY_TYPES = tuple(__ARRAY_TYPES)\n\n\nif sys.version >= '3':\n\n    def str2bytes(s):\n        return bytes(s, 'ascii')\n\n    def bytes2str(b):\n        return b.decode('ascii')\n\nelse:\n\n    def str2bytes(s):\n        return s\n\n    def bytes2str(b):\n        return b\n\nclass Function(object):\n    \"\"\"\n    This is a pythonic wrapper around TALIB's abstract interface. It is\n    intended to simplify using individual TALIB functions by providing a\n    unified interface for setting/controlling input data, setting function\n    parameters and retrieving results. Input data consists of a ``dict`` of\n    ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n    array for each of open, high, low, close and volume. This can be set with\n    the set_input_arrays() method. Which keyed array(s) are used as inputs when\n    calling the function is controlled using the input_names property.\n\n    This class gets initialized with a TALIB function name and optionally an\n    input_arrays object. It provides the following primary functions for\n    setting inputs and retrieving results:\n\n    ---- input_array/TA-function-parameter set-only functions -----\n    - set_input_arrays(input_arrays)\n    - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n    Documentation for param_args_andor_kwargs can be seen by printing the\n    Function instance or programmatically via the info, input_names and\n    parameters properties.\n\n    ----- result-returning functions -----\n    - the outputs property wraps a method which ensures results are always valid\n    - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n    - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n    \"\"\"\n\n    def __init__(self, function_name, func_object, *args, **kwargs):\n        # make sure the function_name is valid and define all of our variables\n        self.__name = function_name.upper()\n        self.__namestr = self.__name\n        self.__name = str2bytes(self.__name)\n\n        # thread-local storage\n        self.__localdata = threading.local()\n\n        # finish initializing: query the TALIB abstract interface and set arguments\n        self.set_function_args(*args, **kwargs)\n        self.func_object = func_object\n\n    @property\n    def __local(self):\n        local = self.__localdata\n        if not hasattr(local, 'info'):\n            local.info = None\n            local.input_arrays = {}\n\n            # dictionaries of function args. keys are input/opt_input/output parameter names\n            local.input_names = OrderedDict()\n            local.opt_inputs = OrderedDict()\n            local.outputs = OrderedDict()\n            local.outputs_valid = False\n\n            # function info\n            local.info = _ta_getFuncInfo(self.__name)\n\n            # inputs (price series names)\n            for i in xrange(local.info.pop('num_inputs')):\n                info = _ta_getInputParameterInfo(self.__name, i)\n                input_name = info['name']\n                if info['price_series'] is None:\n                    info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name]\n                local.input_names[input_name] = info\n            local.info['input_names'] = self.input_names\n\n            # optional inputs (function parameters)\n            for i in xrange(local.info.pop('num_opt_inputs')):\n                info = _ta_getOptInputParameterInfo(self.__name, i)\n                param_name = info['name']\n                local.opt_inputs[param_name] = info\n            local.info['parameters'] = self.parameters\n\n            # outputs\n            local.info['output_flags'] = OrderedDict()\n            for i in xrange(local.info.pop('num_outputs')):\n                info = _ta_getOutputParameterInfo(self.__name, i)\n                output_name = info['name']\n                local.info['output_flags'][output_name] = info['flags']\n                local.outputs[output_name] = None\n            local.info['output_names'] = self.output_names\n        return local\n\n    @property\n    def info(self):\n        \"\"\"\n        Returns a copy of the function's info dict.\n        \"\"\"\n        return self.__local.info.copy()\n\n    @property\n    def function_flags(self):\n        \"\"\"\n        Returns any function flags defined for this indicator function.\n        \"\"\"\n        return self.__local.info['function_flags']\n\n    @property\n    def output_flags(self):\n        \"\"\"\n        Returns the flags for each output for this indicator function.\n        \"\"\"\n        return self.__local.info['output_flags'].copy()\n\n    def get_input_names(self):\n        \"\"\"\n        Returns the dict of input price series names that specifies which\n        of the ndarrays in input_arrays will be used to calculate the function.\n        \"\"\"\n        local = self.__local\n        ret = OrderedDict()\n        for input_name in local.input_names:\n            ret[input_name] = local.input_names[input_name]['price_series']\n        return ret\n\n    def set_input_names(self, input_names):\n        \"\"\"\n        Sets the input price series names to use.\n        \"\"\"\n        local = self.__local\n        for input_name, price_series in input_names.items():\n            local.input_names[input_name]['price_series'] = price_series\n            local.info['input_names'][input_name] = price_series\n        local.outputs_valid = False\n\n    input_names = property(get_input_names, set_input_names)\n\n    def get_input_arrays(self):\n        \"\"\"\n        Returns a copy of the dict of input arrays in use.\n        \"\"\"\n        local = self.__local\n        if __POLARS_DATAFRAME is not None \\\n            and isinstance(local.input_arrays, __POLARS_DATAFRAME):\n            return local.input_arrays.clone()\n        else:\n            return local.input_arrays.copy()\n\n    def set_input_arrays(self, input_arrays):\n        \"\"\"\n        Sets the dict of input_arrays to use. Returns True/False for\n        subclasses:\n\n        If input_arrays is a dict with the keys open, high, low, close and\n        volume, it is assigned as the input_array to use and this function\n        returns True, returning False otherwise. If you implement your own\n        data type and wish to subclass Function, you should wrap this function\n        with an if-statement:\n\n        class CustomFunction(Function):\n            def __init__(self, function_name):\n                Function.__init__(self, function_name)\n\n            def set_input_arrays(self, input_data):\n                if Function.set_input_arrays(self, input_data):\n                    return True\n                elif isinstance(input_data, some_module.CustomDataType):\n                    input_arrays = Function.get_input_arrays(self)\n                    # convert input_data to input_arrays and then call the super\n                    Function.set_input_arrays(self, input_arrays)\n                    return True\n                return False\n        \"\"\"\n        local = self.__local\n        if isinstance(input_arrays, __INPUT_ARRAYS_TYPES):\n            missing_keys = []\n            for key in self.__input_price_series_names():\n                if __POLARS_DATAFRAME is not None \\\n                    and isinstance(input_arrays, __POLARS_DATAFRAME):\n                    missing = key not in input_arrays.columns\n                else:\n                    missing = key not in input_arrays\n                if missing:\n                    missing_keys.append(key)\n            if len(missing_keys) == 0:\n                local.input_arrays = input_arrays\n                local.outputs_valid = False\n                return True\n            else:\n                raise Exception('input_arrays parameter missing required data '\\\n                                'key%s: %s' % ('s' if len(missing_keys) > 1 \\\n                                                    else '',\n                                                ', '.join(missing_keys)))\n        return False\n\n    input_arrays = property(get_input_arrays, set_input_arrays)\n\n    def get_parameters(self):\n        \"\"\"\n        Returns the function's optional parameters and their default values.\n        \"\"\"\n        local = self.__local\n        ret = OrderedDict()\n        for opt_input in local.opt_inputs:\n            ret[opt_input] = self.__get_opt_input_value(opt_input)\n        return ret\n\n    def set_parameters(self, parameters=None, **kwargs):\n        \"\"\"\n        Sets the function parameter values.\n        \"\"\"\n        local = self.__local\n        parameters = parameters or {}\n        parameters.update(kwargs)\n        for param, value in parameters.items():\n            if self.__check_opt_input_value(param, value):\n                local.opt_inputs[param]['value'] = value\n        local.outputs_valid = False\n        local.info['parameters'] = self.parameters\n\n    parameters = property(get_parameters, set_parameters)\n\n    def set_function_args(self, *args, **kwargs):\n        \"\"\"\n        optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]\n        \"\"\"\n        local = self.__local\n        update_info = False\n\n        for key in kwargs:\n            if key in local.opt_inputs:\n                value = kwargs[key]\n                if self.__check_opt_input_value(key, value):\n                    local.opt_inputs[key]['value'] = kwargs[key]\n                    update_info = True\n            elif key in local.input_names:\n                local.input_names[key]['price_series'] = kwargs[key]\n                local.info['input_names'][key] = kwargs[key]\n\n        if args:\n            skip_first = 0\n            if self.set_input_arrays(args[0]):\n                skip_first = 1\n            if len(args) > skip_first:\n                for i, param_name in enumerate(local.opt_inputs):\n                    i += skip_first\n                    if i < len(args):\n                        value = args[i]\n                        if self.__check_opt_input_value(param_name, value):\n                            local.opt_inputs[param_name]['value'] = value\n                            update_info = True\n\n        if args or kwargs:\n            if update_info:\n                local.info['parameters'] = self.parameters\n            local.outputs_valid = False\n\n    @property\n    def lookback(self):\n        \"\"\"\n        Returns the lookback window size for the function with the parameter\n        values that are currently set.\n        \"\"\"\n        local = self.__local\n        cdef lib.TA_ParamHolder *holder\n        holder = __ta_paramHolderAlloc(self.__name)\n        for i, opt_input in enumerate(local.opt_inputs):\n            value = self.__get_opt_input_value(opt_input)\n            type_ = local.opt_inputs[opt_input]['type']\n            if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList:\n                __ta_setOptInputParamReal(holder, i, value)\n            elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList:\n                __ta_setOptInputParamInteger(holder, i, value)\n\n        lookback = __ta_getLookback(holder)\n        __ta_paramHolderFree(holder)\n        return lookback\n\n    @property\n    def output_names(self):\n        \"\"\"\n        Returns a list of the output names returned by this function.\n        \"\"\"\n        ret = self.__local.outputs.keys()\n        if not isinstance(ret, list):\n            ret = list(ret)\n        return ret\n\n    @property\n    def outputs(self):\n        \"\"\"\n        Returns the TA function values for the currently set input_arrays and\n        parameters. Returned values are a ndarray if there is only one output\n        or a list of ndarrays for more than one output.\n        \"\"\"\n        local = self.__local\n        if not local.outputs_valid:\n            self.__call_function()\n        ret = local.outputs.values()\n        if not isinstance(ret, list):\n            ret = list(ret)\n        if __PANDAS_DATAFRAME is not None and \\\n                isinstance(local.input_arrays, __PANDAS_DATAFRAME):\n            index = local.input_arrays.index\n            if len(ret) == 1:\n                return __PANDAS_SERIES(ret[0], index=index)\n            else:\n                return __PANDAS_DATAFRAME(numpy.column_stack(ret),\n                                          index=index,\n                                          columns=self.output_names)\n        elif __POLARS_DATAFRAME is not None and \\\n                isinstance(local.input_arrays, __POLARS_DATAFRAME):\n            if len(ret) == 1:\n                return __POLARS_SERIES(ret[0])\n            else:\n                return __POLARS_DATAFRAME(numpy.column_stack(ret),\n                                          schema=self.output_names)\n        else:\n            return ret[0] if len(ret) == 1 else ret\n\n    def run(self, input_arrays=None):\n        \"\"\"\n        run([input_arrays=None])\n\n        This is a shortcut to the outputs property that also allows setting\n        the input_arrays dict.\n        \"\"\"\n        if input_arrays:\n            self.set_input_arrays(input_arrays)\n        self.__call_function()\n        return self.outputs\n\n    def __call__(self, *args, **kwargs):\n        \"\"\"\n        func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\n        This is a shortcut to the outputs property that also allows setting\n        the input_arrays dict and function parameters.\n        \"\"\"\n        local = self.__local\n        # do not cache ta-func parameters passed to __call__\n        opt_input_values = [(param_name, local.opt_inputs[param_name]['value'])\n                            for param_name in local.opt_inputs.keys()]\n        price_series_name_values = [(n, local.input_names[n]['price_series'])\n                                    for n in local.input_names]\n\n        # allow calling with same signature as talib.func module functions\n        args = list(args)\n        input_arrays = {}\n        input_price_series_names = self.__input_price_series_names()\n        if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES):\n            for i, arg in enumerate(args):\n                if not isinstance(arg, __ARRAY_TYPES):\n                    break\n\n                try:\n                    input_arrays[input_price_series_names[i]] = arg\n                except IndexError:\n                    msg = 'Too many price arguments: expected %d (%s)' % (\n                        len(input_price_series_names),\n                        ', '.join(input_price_series_names))\n                    raise TypeError(msg)\n\n        if __PANDAS_DATAFRAME is not None \\\n                and isinstance(local.input_arrays, __PANDAS_DATAFRAME):\n            no_existing_input_arrays = local.input_arrays.empty\n        elif __POLARS_DATAFRAME is not None \\\n                and isinstance(local.input_arrays, __POLARS_DATAFRAME):\n            no_existing_input_arrays = local.input_arrays.is_empty()\n        else:\n            no_existing_input_arrays = not bool(local.input_arrays)\n\n        if len(input_arrays) == len(input_price_series_names):\n            self.set_input_arrays(input_arrays)\n            args = args[len(input_arrays):]\n        elif len(input_arrays) or (no_existing_input_arrays and (\n                not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))):\n            msg = 'Not enough price arguments: expected %d (%s)' % (\n                len(input_price_series_names),\n                ', '.join(input_price_series_names))\n            raise TypeError(msg)\n\n        self.set_function_args(*args, **kwargs)\n        self.__call_function()\n\n        # restore opt_input values to as they were before this call\n        for param_name, value in opt_input_values:\n            local.opt_inputs[param_name]['value'] = value\n        local.info['parameters'] = self.parameters\n\n        # restore input names values to as they were before this call\n        for input_name, value in price_series_name_values:\n            local.input_names[input_name]['price_series'] = value\n            local.info['input_names'][input_name] = value\n\n        return self.outputs\n\n    # figure out which price series names we're using for inputs\n    def __input_price_series_names(self):\n        local = self.__local\n        input_price_series_names = []\n        for input_name in local.input_names:\n            price_series = local.input_names[input_name]['price_series']\n            if isinstance(price_series, list): # TALIB-supplied input names\n                for name in price_series:\n                    input_price_series_names.append(name)\n            else: # name came from __INPUT_PRICE_SERIES_DEFAULTS\n                input_price_series_names.append(price_series)\n        return input_price_series_names\n\n    def __call_function(self):\n        local = self.__local\n        input_price_series_names = self.__input_price_series_names()\n\n        # populate the ordered args we'll call the function with\n        args = []\n        for price_series in input_price_series_names:\n            series = local.input_arrays[price_series]\n            if __PANDAS_SERIES is not None and \\\n                    isinstance(series, __PANDAS_SERIES):\n                series = series.values.astype(float)\n            elif __POLARS_SERIES is not None and \\\n                    isinstance(series, __POLARS_SERIES):\n                series = series.to_numpy().astype(float)\n            args.append(series)\n        for opt_input in local.opt_inputs:\n            value = self.__get_opt_input_value(opt_input)\n            args.append(value)\n\n        # Use the func module to actually call the function.\n        results = self.func_object(*args)\n        if isinstance(results, np.ndarray):\n            keys = local.outputs.keys()\n            if not isinstance(keys, list):\n                keys = list(keys)\n            local.outputs[keys[0]] = results\n        else:\n            for i, output in enumerate(local.outputs):\n                local.outputs[output] = results[i]\n        local.outputs_valid = True\n\n    def __check_opt_input_value(self, input_name, value):\n        type_ = self.__local.opt_inputs[input_name]['type']\n        if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}:\n            type_ = int\n        elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}:\n            type_ = float\n\n        if isinstance(value, type_):\n           return True\n        elif value is not None:\n            raise TypeError(\n                'Invalid parameter value for %s (expected %s, got %s)' % (\n                    input_name, type_.__name__, type(value).__name__))\n        return False\n\n    def __get_opt_input_value(self, input_name):\n        \"\"\"\n        Returns the user-set value if there is one, otherwise the default.\n        \"\"\"\n        local = self.__local\n        value = local.opt_inputs[input_name]['value']\n        if value is None:\n            value = local.opt_inputs[input_name]['default_value']\n        return value\n\n    def __repr__(self):\n        return '%s' % self.info\n\n    def __unicode__(self):\n        return unicode(self.__str__())\n\n    def __str__(self):\n        return _get_defaults_and_docs(self.info)[1] # docstring includes defaults\n\n\n######################  INTERNAL python-level functions  #######################\n# These map 1-1 with native C TALIB abstract interface calls. Their names\n# are the same except for having the leading 4 characters lowercased (and\n# the Alloc/Free function pairs which have been combined into single get\n# functions)\n#\n# These are TA function information-discovery calls. The Function class\n# encapsulates these functions into an easy-to-use, pythonic interface. It's\n# therefore recommended over using these functions directly.\n\ndef _ta_getGroupTable():\n    \"\"\"\n    Returns the list of available TALIB function group names. *slow*\n    \"\"\"\n    cdef lib.TA_StringTable *table\n    _ta_check_success('TA_GroupTableAlloc', lib.TA_GroupTableAlloc(&table))\n    groups = []\n    for i in xrange(table.size):\n        groups.append(deref(&table.string[i]))\n    _ta_check_success('TA_GroupTableFree', lib.TA_GroupTableFree(table))\n    return groups\n\ndef _ta_getFuncTable(char *group):\n    \"\"\"\n    Returns a list of the functions for the specified group name. *slow*\n    \"\"\"\n    cdef lib.TA_StringTable *table\n    _ta_check_success('TA_FuncTableAlloc', lib.TA_FuncTableAlloc(group, &table))\n    functions = []\n    for i in xrange(table.size):\n        functions.append(deref(&table.string[i]))\n    _ta_check_success('TA_FuncTableFree', lib.TA_FuncTableFree(table))\n    return functions\n\ndef __get_flags(int flag, dict flags_lookup_dict):\n    \"\"\"\n    TA-LIB provides hints for multiple flags as a bitwise-ORed int.\n    This function returns the flags from flag found in the provided\n    flags_lookup_dict.\n    \"\"\"\n    value_range = flags_lookup_dict.keys()\n    if not isinstance(value_range, list):\n        value_range = list(value_range)\n    min_int = int(math.log(min(value_range), 2))\n    max_int = int(math.log(max(value_range), 2))\n\n    # if the flag we got is out-of-range, it just means no extra info provided\n    if flag < 1 or flag > 2**max_int:\n        return None\n\n    # In this loop, i is essentially the bit-position, which represents an\n    # input from flags_lookup_dict. We loop through as many flags_lookup_dict\n    # bit-positions as we need to check, bitwise-ANDing each with flag for a hit.\n    ret = []\n    for i in xrange(min_int, max_int+1):\n        if 2**i & flag:\n            ret.append(flags_lookup_dict[2**i])\n    return ret\n\nTA_FUNC_FLAGS = {\n    16777216: 'Output scale same as input',\n    67108864: 'Output is over volume',\n    134217728: 'Function has an unstable period',\n    268435456: 'Output is a candlestick'\n}\n\n# when flag is 0, the function (should) work on any reasonable input ndarray\nTA_INPUT_FLAGS = {\n    1: 'open',\n    2: 'high',\n    4: 'low',\n    8: 'close',\n    16: 'volume',\n    32: 'openInterest',\n    64: 'timeStamp'\n}\n\nTA_OUTPUT_FLAGS = {\n    1: 'Line',\n    2: 'Dotted Line',\n    4: 'Dashed Line',\n    8: 'Dot',\n    16: 'Histogram',\n    32: 'Pattern (Bool)',\n    64: 'Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)',\n    128: 'Strength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)',\n    256: 'Output can be positive',\n    512: 'Output can be negative',\n    1024: 'Output can be zero',\n    2048: 'Values represent an upper limit',\n    4096: 'Values represent a lower limit'\n}\n\ndef _ta_getFuncInfo(char *function_name):\n    \"\"\"\n    Returns the info dict for the function. It has the following keys: name,\n    group, help, flags, num_inputs, num_opt_inputs and num_outputs.\n    \"\"\"\n    cdef const lib.TA_FuncInfo *info\n    retCode = lib.TA_GetFuncInfo(__ta_getFuncHandle(function_name), &info)\n    _ta_check_success('TA_GetFuncInfo', retCode)\n\n    return {\n        'name': bytes2str(info.name),\n        'group': bytes2str(info.group),\n        'display_name': bytes2str(info.hint),\n        'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS),\n        'num_inputs': int(info.nbInput),\n        'num_opt_inputs': int(info.nbOptInput),\n        'num_outputs': int(info.nbOutput)\n    }\n\ndef _ta_getInputParameterInfo(char *function_name, int idx):\n    \"\"\"\n    Returns the function's input info dict for the given index. It has two\n    keys: name and flags.\n    \"\"\"\n    cdef const lib.TA_InputParameterInfo *info\n    retCode = lib.TA_GetInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info)\n    _ta_check_success('TA_GetInputParameterInfo', retCode)\n\n    name = bytes2str(info.paramName)\n    name = name[len('in'):].lower()\n    if 'real' in name:\n        name = name.replace('real', 'price')\n    elif 'price' in name:\n        name = 'prices'\n\n    return {\n        'name': name,\n        'price_series': __get_flags(info.flags, TA_INPUT_FLAGS)\n    }\n\ndef _ta_getOptInputParameterInfo(char *function_name, int idx):\n    \"\"\"\n    Returns the function's opt_input info dict for the given index. It has the\n    following keys: name, display_name, type, help, default_value and value.\n    \"\"\"\n    cdef const lib.TA_OptInputParameterInfo *info\n    retCode = lib.TA_GetOptInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info)\n    _ta_check_success('TA_GetOptInputParameterInfo', retCode)\n\n    name = bytes2str(info.paramName)\n    name = name[len('optIn'):].lower()\n    default_value = int(info.defaultValue) if info.type > 1 else info.defaultValue\n\n    return {\n        'name': name,\n        'display_name': bytes2str(info.displayName),\n        'type': info.type,\n        'help': bytes2str(info.hint),\n        'default_value': default_value,\n        'value': None\n    }\n\ndef _ta_getOutputParameterInfo(char *function_name, int idx):\n    \"\"\"\n    Returns the function's output info dict for the given index. It has two\n    keys: name and flags.\n    \"\"\"\n    cdef const lib.TA_OutputParameterInfo *info\n    retCode = lib.TA_GetOutputParameterInfo(__ta_getFuncHandle(function_name), idx, &info)\n    _ta_check_success('TA_GetOutputParameterInfo', retCode)\n\n    name = bytes2str(info.paramName)\n    name = name[len('out'):].lower()\n    # chop off leading 'real' if a descriptive name follows\n    if 'real' in name and name not in ['real', 'real0', 'real1']:\n        name = name[len('real'):]\n\n    return {\n        'name': name,\n        'flags': __get_flags(info.flags, TA_OUTPUT_FLAGS)\n    }\n\ndef _get_defaults_and_docs(func_info):\n    \"\"\"\n    Returns a tuple with two outputs: defaults, a dict of parameter defaults,\n    and documentation, a formatted docstring for the function.\n    .. Note: func_info should come from Function.info, *not* _ta_getFuncInfo.\n    \"\"\"\n    defaults = {}\n    func_line = [func_info['name'], '(']\n    func_args = ['[input_arrays]']\n    docs = []\n    docs.append('%(display_name)s (%(group)s)\\n' % func_info)\n\n    input_names = func_info['input_names']\n    docs.append('Inputs:')\n    for input_name in input_names:\n        value = input_names[input_name]\n        if not isinstance(value, list):\n            value = '(any ndarray)'\n        docs.append('    %s: %s' % (input_name, value))\n\n    params = func_info['parameters']\n    if params:\n        docs.append('Parameters:')\n    for param in params:\n        docs.append('    %s: %s' % (param, params[param]))\n        func_args.append('[%s=%s]' % (param, params[param]))\n        defaults[param] = params[param]\n        if param == 'matype':\n            docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]])\n\n    outputs = func_info['output_names']\n    docs.append('Outputs:')\n    for output in outputs:\n        if output == 'integer':\n            output = 'integer (values are -100, 0 or 100)'\n        docs.append('    %s' % output)\n\n    func_line.append(', '.join(func_args))\n    func_line.append(')\\n')\n    docs.insert(0, ''.join(func_line))\n    documentation = '\\n'.join(docs)\n    return defaults, documentation\n\n\n###############    PRIVATE C-level-only functions    ###########################\n# These map 1-1 with native C TALIB abstract interface calls. Their names are the\n# same except for having the leading 4 characters lowercased.\n\n# These functions are for:\n# - Getting TALIB handle and paramholder pointers\n# - Setting TALIB paramholder optInput values and calling the lookback function\n\ncdef const lib.TA_FuncHandle*  __ta_getFuncHandle(char *function_name):\n    \"\"\"\n    Returns a pointer to a function handle for the given function name\n    \"\"\"\n    cdef const lib.TA_FuncHandle *handle\n    _ta_check_success('TA_GetFuncHandle', lib.TA_GetFuncHandle(function_name, &handle))\n    return handle\n\ncdef lib.TA_ParamHolder* __ta_paramHolderAlloc(char *function_name):\n    \"\"\"\n    Returns a pointer to a parameter holder for the given function name\n    \"\"\"\n    cdef lib.TA_ParamHolder *holder\n    retCode = lib.TA_ParamHolderAlloc(__ta_getFuncHandle(function_name), &holder)\n    _ta_check_success('TA_ParamHolderAlloc', retCode)\n    return holder\n\ncdef int __ta_paramHolderFree(lib.TA_ParamHolder *params):\n    \"\"\"\n    Frees the memory allocated by __ta_paramHolderAlloc (call when done with the parameter holder)\n    WARNING: Not properly calling this function will cause memory leaks!\n    \"\"\"\n    _ta_check_success('TA_ParamHolderFree', lib.TA_ParamHolderFree(params))\n\ncdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value):\n    retCode = lib.TA_SetOptInputParamInteger(holder, idx, value)\n    _ta_check_success('TA_SetOptInputParamInteger', retCode)\n\ncdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value):\n    retCode = lib.TA_SetOptInputParamReal(holder, idx, value)\n    _ta_check_success('TA_SetOptInputParamReal', retCode)\n\ncdef int __ta_getLookback(lib.TA_ParamHolder *holder):\n    cdef int lookback\n    retCode = lib.TA_GetLookback(holder, &lookback)\n    _ta_check_success('TA_GetLookback', retCode)\n    return lookback\n"
  },
  {
    "path": "talib/_common.pxi",
    "content": "cimport _ta_lib as lib\nfrom _ta_lib cimport TA_RetCode, TA_FuncUnstId\n\n__ta_version__ = lib.TA_GetVersionString()\n\ncpdef _ta_check_success(str function_name, TA_RetCode ret_code):\n    if ret_code == 0:\n        return True\n    elif ret_code == 1:\n        description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)'\n    elif ret_code == 2:\n        description = 'Bad Parameter (TA_BAD_PARAM)'\n    elif ret_code == 3:\n        description = 'Allocation Error (TA_ALLOC_ERR)'\n    elif ret_code == 4:\n        description = 'Group Not Found (TA_GROUP_NOT_FOUND)'\n    elif ret_code == 5:\n        description = 'Function Not Found (TA_FUNC_NOT_FOUND)'\n    elif ret_code == 6:\n        description = 'Invalid Handle (TA_INVALID_HANDLE)'\n    elif ret_code == 7:\n        description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)'\n    elif ret_code == 8:\n        description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)'\n    elif ret_code == 9:\n        description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)'\n    elif ret_code == 10:\n        description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)'\n    elif ret_code == 11:\n        description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)'\n    elif ret_code == 12:\n        description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)'\n    elif ret_code == 13:\n        description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)'\n    elif ret_code == 14:\n        description = 'Invalid List Type (TA_INVALID_LIST_TYPE)'\n    elif ret_code == 15:\n        description = 'Bad Object (TA_BAD_OBJECT)'\n    elif ret_code == 16:\n        description = 'Not Supported (TA_NOT_SUPPORTED)'\n    elif ret_code == 5000:\n        description = 'Internal Error (TA_INTERNAL_ERROR)'\n    elif ret_code == 65535:\n        description = 'Unknown Error (TA_UNKNOWN_ERR)'\n    else:\n        description = 'Unknown Error'\n    raise Exception('%s function failed with error code %s: %s' % (\n        function_name, ret_code, description))\n\ndef _ta_initialize():\n    cdef TA_RetCode ret_code\n    ret_code = lib.TA_Initialize()\n    _ta_check_success('TA_Initialize', ret_code)\n\ndef _ta_shutdown():\n    cdef TA_RetCode ret_code\n    ret_code = lib.TA_Shutdown()\n    _ta_check_success('TA_Shutdown', ret_code)\n\nclass MA_Type(object):\n    SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9)\n\n    def __init__(self):\n        self._lookup = {\n            MA_Type.SMA: 'Simple Moving Average',\n            MA_Type.EMA: 'Exponential Moving Average',\n            MA_Type.WMA: 'Weighted Moving Average',\n            MA_Type.DEMA: 'Double Exponential Moving Average',\n            MA_Type.TEMA: 'Triple Exponential Moving Average',\n            MA_Type.TRIMA: 'Triangular Moving Average',\n            MA_Type.KAMA: 'Kaufman Adaptive Moving Average',\n            MA_Type.MAMA: 'MESA Adaptive Moving Average',\n            MA_Type.T3: 'Triple Generalized Double Exponential Moving Average',\n            }\n\n    def __getitem__(self, type_):\n        return self._lookup[type_]\n\nMA_Type = MA_Type()\n\n_ta_func_unst_ids = {'NONE': -1}\nfor i, name in enumerate([\n            'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD',\n            'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE',\n            'HT_TRENDMODE', 'KAMA', 'MAMA', 'MFI', 'MINUS_DI', 'MINUS_DM',\n            'NATR', 'PLUS_DI', 'PLUS_DM', 'RSI', 'STOCHRSI', 'T3', 'ALL'\n        ]):\n    _ta_func_unst_ids[name] = i\n\ndef _ta_set_unstable_period(name, period):\n    cdef TA_RetCode ret_code\n    cdef TA_FuncUnstId id = _ta_func_unst_ids[name]\n    ret_code = lib.TA_SetUnstablePeriod(id, period)\n    _ta_check_success('TA_SetUnstablePeriod', ret_code)\n\ndef _ta_get_unstable_period(name):\n    cdef unsigned int period\n    cdef TA_FuncUnstId id = _ta_func_unst_ids[name]\n    period = lib.TA_GetUnstablePeriod(id)\n    return period\n\ndef _ta_set_compatibility(value):\n    cdef TA_RetCode ret_code\n    ret_code = lib.TA_SetCompatibility(value)\n    _ta_check_success('TA_SetCompatibility', ret_code)\n\ndef _ta_get_compatibility():\n    cdef int value\n    value = lib.TA_GetCompatibility()\n    return value\n\nclass CandleSettingType(object):\n    BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \\\n    ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \\\n    range(12)\n\nCandleSettingType = CandleSettingType()\n\nclass RangeType(object):\n    RealBody, HighLow, Shadows = range(3)\n\nRangeType = RangeType()\n\ndef _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor):\n    cdef TA_RetCode ret_code\n    ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor)\n    _ta_check_success('TA_SetCandleSettings', ret_code)\n\ndef _ta_restore_candle_default_settings(settingtype):\n    cdef TA_RetCode ret_code\n    ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype)\n    _ta_check_success('TA_RestoreCandleDefaultSettings', ret_code)\n"
  },
  {
    "path": "talib/_func.pxi",
    "content": "cimport numpy as np\nfrom numpy import nan\nfrom cython import boundscheck, wraparound\n\n# _ta_check_success: defined in _common.pxi\n\ncdef double NaN = nan\n\ncdef extern from \"numpy/arrayobject.h\":\n    int PyArray_TYPE(np.ndarray)\n    np.ndarray PyArray_EMPTY(int, np.npy_intp*, int, int)\n    int PyArray_FLAGS(np.ndarray)\n    np.ndarray PyArray_GETCONTIGUOUS(np.ndarray)\n\nnp.import_array() # Initialize the NumPy C API\n\ncimport _ta_lib as lib\nfrom _ta_lib cimport TA_RetCode\n\ncdef np.ndarray check_array(np.ndarray real):\n    if PyArray_TYPE(real) != np.NPY_DOUBLE:\n        raise Exception(\"input array type is not double\")\n    if real.ndim != 1:\n        raise Exception(\"input array has wrong dimensions\")\n    if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS):\n        real = PyArray_GETCONTIGUOUS(real)\n    return real\n\ncdef np.npy_intp check_length2(np.ndarray a1, np.ndarray a2) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_intp check_length3(np.ndarray a1, np.ndarray a2, np.ndarray a3) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a3.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_intp check_length4(np.ndarray a1, np.ndarray a2, np.ndarray a3, np.ndarray a4) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a3.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a4.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_int check_begidx1(np.npy_intp length, double* a1):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx2(np.npy_intp length, double* a1, double* a2):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx3(np.npy_intp length, double* a1, double* a2, double* a3):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        val = a3[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx4(np.npy_intp length, double* a1, double* a2, double* a3, double* a4):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        val = a3[i]\n        if val != val:\n            continue\n        val = a4[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.ndarray make_double_array(np.npy_intp length, int lookback):\n    cdef:\n        np.ndarray outreal\n        double* outreal_data\n    outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, np.NPY_ARRAY_DEFAULT)\n    outreal_data = <double*>outreal.data\n    for i from 0 <= i < min(lookback, length):\n        outreal_data[i] = NaN\n    return outreal\n\ncdef np.ndarray make_int_array(np.npy_intp length, int lookback):\n    cdef:\n        np.ndarray outinteger\n        int* outinteger_data\n    outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, np.NPY_ARRAY_DEFAULT)\n    outinteger_data = <int*>outinteger.data\n    for i from 0 <= i < min(lookback, length):\n        outinteger_data[i] = 0\n    return outinteger\n\n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ACCBANDS(high, low, close[, timeperiod=?])\n\n    Acceleration Bands (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 20\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outrealupperband\n        np.ndarray outrealmiddleband\n        np.ndarray outreallowerband\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod )\n    outrealupperband = make_double_array(length, lookback)\n    outrealmiddleband = make_double_array(length, lookback)\n    outreallowerband = make_double_array(length, lookback)\n    retCode = lib.TA_ACCBANDS( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outrealupperband.data)+lookback , <double *>(outrealmiddleband.data)+lookback , <double *>(outreallowerband.data)+lookback )\n    _ta_check_success(\"TA_ACCBANDS\", retCode)\n    return outrealupperband , outrealmiddleband , outreallowerband \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ACOS( np.ndarray real not None ):\n    \"\"\" ACOS(real)\n\n    Vector Trigonometric ACos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ACOS_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ACOS( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ACOS\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ):\n    \"\"\" AD(high, low, close, volume)\n\n    Chaikin A/D Line (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    volume = check_array(volume)\n    length = check_length4(high, low, close, volume)\n    begidx = check_begidx4(length, <double*>(high.data), <double*>(low.data), <double*>(close.data), <double*>(volume.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_AD_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_AD( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , <double *>(volume.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_AD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ADD( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" ADD(real0, real1)\n\n    Vector Arithmetic Add (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ADD_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ADD( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ADD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ADOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2**31 ):\n    \"\"\" ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n    Chaikin A/D Oscillator (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        fastperiod: 3\n        slowperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    volume = check_array(volume)\n    length = check_length4(high, low, close, volume)\n    begidx = check_begidx4(length, <double*>(high.data), <double*>(low.data), <double*>(close.data), <double*>(volume.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ADOSC( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , <double *>(volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ADOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ADX(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ADX_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ADX( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ADX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ADXR(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index Rating (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ADXR_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ADXR( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ADXR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ):\n    \"\"\" APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Absolute Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_APO( 0 , endidx , <double *>(real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_APO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" AROON(high, low[, timeperiod=?])\n\n    Aroon (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        aroondown\n        aroonup\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outaroondown\n        np.ndarray outaroonup\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_AROON_Lookback( timeperiod )\n    outaroondown = make_double_array(length, lookback)\n    outaroonup = make_double_array(length, lookback)\n    retCode = lib.TA_AROON( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outaroondown.data)+lookback , <double *>(outaroonup.data)+lookback )\n    _ta_check_success(\"TA_AROON\", retCode)\n    return outaroondown , outaroonup \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" AROONOSC(high, low[, timeperiod=?])\n\n    Aroon Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_AROONOSC( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_AROONOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ASIN( np.ndarray real not None ):\n    \"\"\" ASIN(real)\n\n    Vector Trigonometric ASin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ASIN_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ASIN( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ASIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ATAN( np.ndarray real not None ):\n    \"\"\" ATAN(real)\n\n    Vector Trigonometric ATan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ATAN_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ATAN( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ATAN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ATR(high, low, close[, timeperiod=?])\n\n    Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ATR_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ATR( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ATR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" AVGPRICE(open, high, low, close)\n\n    Average Price (Price Transform)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_AVGPRICE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_AVGPRICE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_AVGPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" AVGDEV(real[, timeperiod=?])\n\n    Average Deviation (Price Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_AVGDEV( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_AVGDEV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ):\n    \"\"\" BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n    Bollinger Bands (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdevup: 2.0\n        nbdevdn: 2.0\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outrealupperband\n        np.ndarray outrealmiddleband\n        np.ndarray outreallowerband\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype )\n    outrealupperband = make_double_array(length, lookback)\n    outrealmiddleband = make_double_array(length, lookback)\n    outreallowerband = make_double_array(length, lookback)\n    retCode = lib.TA_BBANDS( 0 , endidx , <double *>(real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , <double *>(outrealupperband.data)+lookback , <double *>(outrealmiddleband.data)+lookback , <double *>(outreallowerband.data)+lookback )\n    _ta_check_success(\"TA_BBANDS\", retCode)\n    return outrealupperband , outrealmiddleband , outreallowerband \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ):\n    \"\"\" BETA(real0, real1[, timeperiod=?])\n\n    Beta (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 5\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_BETA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_BETA( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_BETA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" BOP(open, high, low, close)\n\n    Balance Of Power (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_BOP_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_BOP( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_BOP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" CCI(high, low, close[, timeperiod=?])\n\n    Commodity Channel Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CCI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_CCI( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_CCI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL2CROWS(open, high, low, close)\n\n    Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL2CROWS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL2CROWS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL2CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3BLACKCROWS(open, high, low, close)\n\n    Three Black Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3BLACKCROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3INSIDE(open, high, low, close)\n\n    Three Inside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3INSIDE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3INSIDE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3INSIDE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3LINESTRIKE(open, high, low, close)\n\n    Three-Line Strike  (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3LINESTRIKE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3OUTSIDE(open, high, low, close)\n\n    Three Outside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3OUTSIDE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3STARSINSOUTH(open, high, low, close)\n\n    Three Stars In The South (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3STARSINSOUTH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3WHITESOLDIERS(open, high, low, close)\n\n    Three Advancing White Soldiers (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDL3WHITESOLDIERS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n    Abandoned Baby (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLABANDONEDBABY\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLADVANCEBLOCK(open, high, low, close)\n\n    Advance Block (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLADVANCEBLOCK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLBELTHOLD(open, high, low, close)\n\n    Belt-hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLBELTHOLD( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLBELTHOLD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLBREAKAWAY(open, high, low, close)\n\n    Breakaway (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLBREAKAWAY\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCLOSINGMARUBOZU(open, high, low, close)\n\n    Closing Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLCLOSINGMARUBOZU\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCONCEALBABYSWALL(open, high, low, close)\n\n    Concealing Baby Swallow (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLCONCEALBABYSWALL\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCOUNTERATTACK(open, high, low, close)\n\n    Counterattack (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLCOUNTERATTACK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ):\n    \"\"\" CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n    Dark Cloud Cover (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLDARKCLOUDCOVER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDOJI(open, high, low, close)\n\n    Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLDOJI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLDOJI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDOJISTAR(open, high, low, close)\n\n    Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLDOJISTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDRAGONFLYDOJI(open, high, low, close)\n\n    Dragonfly Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLDRAGONFLYDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLENGULFING(open, high, low, close)\n\n    Engulfing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLENGULFING_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLENGULFING( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLENGULFING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Evening Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLEVENINGDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n    Evening Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLEVENINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n    Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLGAPSIDESIDEWHITE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLGRAVESTONEDOJI(open, high, low, close)\n\n    Gravestone Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLGRAVESTONEDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHAMMER(open, high, low, close)\n\n    Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHAMMER_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHAMMER( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHAMMER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHANGINGMAN(open, high, low, close)\n\n    Hanging Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHANGINGMAN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHARAMI(open, high, low, close)\n\n    Harami Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHARAMI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHARAMI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHARAMI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHARAMICROSS(open, high, low, close)\n\n    Harami Cross Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHARAMICROSS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIGHWAVE(open, high, low, close)\n\n    High-Wave Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHIGHWAVE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIKKAKE(open, high, low, close)\n\n    Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHIKKAKE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHIKKAKE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIKKAKEMOD(open, high, low, close)\n\n    Modified Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHIKKAKEMOD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHOMINGPIGEON(open, high, low, close)\n\n    Homing Pigeon (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLHOMINGPIGEON\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLIDENTICAL3CROWS(open, high, low, close)\n\n    Identical Three Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLIDENTICAL3CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLINNECK(open, high, low, close)\n\n    In-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLINNECK_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLINNECK( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLINNECK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLINVERTEDHAMMER(open, high, low, close)\n\n    Inverted Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLINVERTEDHAMMER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLKICKING(open, high, low, close)\n\n    Kicking (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLKICKING_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLKICKING( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLKICKING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLKICKINGBYLENGTH(open, high, low, close)\n\n    Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLKICKINGBYLENGTH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLADDERBOTTOM(open, high, low, close)\n\n    Ladder Bottom (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLLADDERBOTTOM\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLONGLEGGEDDOJI(open, high, low, close)\n\n    Long Legged Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLLONGLEGGEDDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLONGLINE(open, high, low, close)\n\n    Long Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLLONGLINE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLLONGLINE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLLONGLINE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLMARUBOZU(open, high, low, close)\n\n    Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLMARUBOZU( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLMARUBOZU\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLMATCHINGLOW(open, high, low, close)\n\n    Matching Low (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLMATCHINGLOW\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ):\n    \"\"\" CDLMATHOLD(open, high, low, close[, penetration=?])\n\n    Mat Hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLMATHOLD( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLMATHOLD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Morning Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLMORNINGDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n    Morning Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , penetration , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLMORNINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLONNECK(open, high, low, close)\n\n    On-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLONNECK_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLONNECK( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLONNECK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLPIERCING(open, high, low, close)\n\n    Piercing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLPIERCING_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLPIERCING( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLPIERCING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLRICKSHAWMAN(open, high, low, close)\n\n    Rickshaw Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLRICKSHAWMAN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLRISEFALL3METHODS(open, high, low, close)\n\n    Rising/Falling Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLRISEFALL3METHODS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSEPARATINGLINES(open, high, low, close)\n\n    Separating Lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSEPARATINGLINES\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSHOOTINGSTAR(open, high, low, close)\n\n    Shooting Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSHOOTINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSHORTLINE(open, high, low, close)\n\n    Short Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSHORTLINE( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSHORTLINE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSPINNINGTOP(open, high, low, close)\n\n    Spinning Top (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSPINNINGTOP\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSTALLEDPATTERN(open, high, low, close)\n\n    Stalled Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSTALLEDPATTERN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSTICKSANDWICH(open, high, low, close)\n\n    Stick Sandwich (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLSTICKSANDWICH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTAKURI(open, high, low, close)\n\n    Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLTAKURI_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLTAKURI( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLTAKURI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTASUKIGAP(open, high, low, close)\n\n    Tasuki Gap (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLTASUKIGAP\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTHRUSTING(open, high, low, close)\n\n    Thrusting Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLTHRUSTING( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLTHRUSTING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTRISTAR(open, high, low, close)\n\n    Tristar Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLTRISTAR_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLTRISTAR( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLTRISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLUNIQUE3RIVER(open, high, low, close)\n\n    Unique 3 River (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLUNIQUE3RIVER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n    Upside Gap Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLUPSIDEGAP2CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLXSIDEGAP3METHODS(open, high, low, close)\n\n    Upside/Downside Gap Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    open = check_array(open)\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length4(open, high, low, close)\n    begidx = check_begidx4(length, <double*>(open.data), <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , <double *>(open.data)+begidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_CDLXSIDEGAP3METHODS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CEIL( np.ndarray real not None ):\n    \"\"\" CEIL(real)\n\n    Vector Ceil (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CEIL_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_CEIL( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_CEIL\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CMO( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" CMO(real[, timeperiod=?])\n\n    Chande Momentum Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CMO_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_CMO( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_CMO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ):\n    \"\"\" CORREL(real0, real1[, timeperiod=?])\n\n    Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_CORREL_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_CORREL( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_CORREL\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef COS( np.ndarray real not None ):\n    \"\"\" COS(real)\n\n    Vector Trigonometric Cos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_COS_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_COS( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_COS\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef COSH( np.ndarray real not None ):\n    \"\"\" COSH(real)\n\n    Vector Trigonometric Cosh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_COSH_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_COSH( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_COSH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef DEMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" DEMA(real[, timeperiod=?])\n\n    Double Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_DEMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_DEMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_DEMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef DIV( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" DIV(real0, real1)\n\n    Vector Arithmetic Div (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_DIV_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_DIV( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_DIV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" DX(high, low, close[, timeperiod=?])\n\n    Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_DX_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_DX( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_DX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef EMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" EMA(real[, timeperiod=?])\n\n    Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_EMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_EMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_EMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef EXP( np.ndarray real not None ):\n    \"\"\" EXP(real)\n\n    Vector Arithmetic Exp (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_EXP_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_EXP( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_EXP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef FLOOR( np.ndarray real not None ):\n    \"\"\" FLOOR(real)\n\n    Vector Floor (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_FLOOR_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_FLOOR( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_FLOOR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_DCPERIOD( np.ndarray real not None ):\n    \"\"\" HT_DCPERIOD(real)\n\n    Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_HT_DCPERIOD( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_HT_DCPERIOD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_DCPHASE( np.ndarray real not None ):\n    \"\"\" HT_DCPHASE(real)\n\n    Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_DCPHASE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_HT_DCPHASE( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_HT_DCPHASE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_PHASOR( np.ndarray real not None ):\n    \"\"\" HT_PHASOR(real)\n\n    Hilbert Transform - Phasor Components (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        inphase\n        quadrature\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinphase\n        np.ndarray outquadrature\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_PHASOR_Lookback( )\n    outinphase = make_double_array(length, lookback)\n    outquadrature = make_double_array(length, lookback)\n    retCode = lib.TA_HT_PHASOR( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outinphase.data)+lookback , <double *>(outquadrature.data)+lookback )\n    _ta_check_success(\"TA_HT_PHASOR\", retCode)\n    return outinphase , outquadrature \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_SINE( np.ndarray real not None ):\n    \"\"\" HT_SINE(real)\n\n    Hilbert Transform - SineWave (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        sine\n        leadsine\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outsine\n        np.ndarray outleadsine\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_SINE_Lookback( )\n    outsine = make_double_array(length, lookback)\n    outleadsine = make_double_array(length, lookback)\n    retCode = lib.TA_HT_SINE( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outsine.data)+lookback , <double *>(outleadsine.data)+lookback )\n    _ta_check_success(\"TA_HT_SINE\", retCode)\n    return outsine , outleadsine \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_TRENDLINE( np.ndarray real not None ):\n    \"\"\" HT_TRENDLINE(real)\n\n    Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_HT_TRENDLINE( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_HT_TRENDLINE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef HT_TRENDMODE( np.ndarray real not None ):\n    \"\"\" HT_TRENDMODE(real)\n\n    Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_HT_TRENDMODE( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_HT_TRENDMODE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" IMI(open, close[, timeperiod=?])\n\n    Intraday Momentum Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    open = check_array(open)\n    close = check_array(close)\n    length = check_length2(open, close)\n    begidx = check_begidx2(length, <double*>(open.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_IMI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_IMI( 0 , endidx , <double *>(open.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_IMI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef KAMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" KAMA(real[, timeperiod=?])\n\n    Kaufman Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_KAMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_KAMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_KAMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG(real[, timeperiod=?])\n\n    Linear Regression (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LINEARREG( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LINEARREG\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_ANGLE(real[, timeperiod=?])\n\n    Linear Regression Angle (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LINEARREG_ANGLE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n    Linear Regression Intercept (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LINEARREG_INTERCEPT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_SLOPE(real[, timeperiod=?])\n\n    Linear Regression Slope (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LINEARREG_SLOPE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LN( np.ndarray real not None ):\n    \"\"\" LN(real)\n\n    Vector Log Natural (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LN_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LN( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef LOG10( np.ndarray real not None ):\n    \"\"\" LOG10(real)\n\n    Vector Log10 (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_LOG10_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_LOG10( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_LOG10\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ):\n    \"\"\" MA(real[, timeperiod=?, matype=?])\n\n    Moving average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ):\n    \"\"\" MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n    Moving Average Convergence/Divergence (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outmacd\n        np.ndarray outmacdsignal\n        np.ndarray outmacdhist\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MACD_Lookback( fastperiod , slowperiod , signalperiod )\n    outmacd = make_double_array(length, lookback)\n    outmacdsignal = make_double_array(length, lookback)\n    outmacdhist = make_double_array(length, lookback)\n    retCode = lib.TA_MACD( 0 , endidx , <double *>(real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , <double *>(outmacd.data)+lookback , <double *>(outmacdsignal.data)+lookback , <double *>(outmacdhist.data)+lookback )\n    _ta_check_success(\"TA_MACD\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ):\n    \"\"\" MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n    MACD with controllable MA type (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        fastmatype: 0\n        slowperiod: 26\n        slowmatype: 0\n        signalperiod: 9\n        signalmatype: 0\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outmacd\n        np.ndarray outmacdsignal\n        np.ndarray outmacdhist\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MACDEXT_Lookback( fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype )\n    outmacd = make_double_array(length, lookback)\n    outmacdsignal = make_double_array(length, lookback)\n    outmacdhist = make_double_array(length, lookback)\n    retCode = lib.TA_MACDEXT( 0 , endidx , <double *>(real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , <double *>(outmacd.data)+lookback , <double *>(outmacdsignal.data)+lookback , <double *>(outmacdhist.data)+lookback )\n    _ta_check_success(\"TA_MACDEXT\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ):\n    \"\"\" MACDFIX(real[, signalperiod=?])\n\n    Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outmacd\n        np.ndarray outmacdsignal\n        np.ndarray outmacdhist\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MACDFIX_Lookback( signalperiod )\n    outmacd = make_double_array(length, lookback)\n    outmacdsignal = make_double_array(length, lookback)\n    outmacdhist = make_double_array(length, lookback)\n    retCode = lib.TA_MACDFIX( 0 , endidx , <double *>(real.data)+begidx , signalperiod , &outbegidx , &outnbelement , <double *>(outmacd.data)+lookback , <double *>(outmacdsignal.data)+lookback , <double *>(outmacdhist.data)+lookback )\n    _ta_check_success(\"TA_MACDFIX\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ):\n    \"\"\" MAMA(real[, fastlimit=?, slowlimit=?])\n\n    MESA Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastlimit: 0.5\n        slowlimit: 0.05\n    Outputs:\n        mama\n        fama\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outmama\n        np.ndarray outfama\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit )\n    outmama = make_double_array(length, lookback)\n    outfama = make_double_array(length, lookback)\n    retCode = lib.TA_MAMA( 0 , endidx , <double *>(real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , <double *>(outmama.data)+lookback , <double *>(outfama.data)+lookback )\n    _ta_check_success(\"TA_MAMA\", retCode)\n    return outmama , outfama \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ):\n    \"\"\" MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n    Moving average with variable period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n        periods: (any ndarray)\n    Parameters:\n        minperiod: 2\n        maxperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    periods = check_array(periods)\n    length = check_length2(real, periods)\n    begidx = check_begidx2(length, <double*>(real.data), <double*>(periods.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MAVP( 0 , endidx , <double *>(real.data)+begidx , <double *>(periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MAVP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MAX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MAX(real[, timeperiod=?])\n\n    Highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MAX_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MAX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MAX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MAXINDEX(real[, timeperiod=?])\n\n    Index of highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_MAXINDEX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_MAXINDEX\", retCode)\n    outinteger_data = <int*>outinteger.data\n    for i from lookback <= i < length:\n        outinteger_data[i] += begidx\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MEDPRICE( np.ndarray high not None , np.ndarray low not None ):\n    \"\"\" MEDPRICE(high, low)\n\n    Median Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MEDPRICE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MEDPRICE( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MEDPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ):\n    \"\"\" MFI(high, low, close, volume[, timeperiod=?])\n\n    Money Flow Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    volume = check_array(volume)\n    length = check_length4(high, low, close, volume)\n    begidx = check_begidx4(length, <double*>(high.data), <double*>(low.data), <double*>(close.data), <double*>(volume.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MFI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MFI( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , <double *>(volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MFI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MIDPOINT(real[, timeperiod=?])\n\n    MidPoint over period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MIDPOINT( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MIDPOINT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" MIDPRICE(high, low[, timeperiod=?])\n\n    Midpoint Price over period (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MIDPRICE( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MIDPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MIN( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MIN(real[, timeperiod=?])\n\n    Lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MIN_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MIN( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MININDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MININDEX(real[, timeperiod=?])\n\n    Index of lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outinteger\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod )\n    outinteger = make_int_array(length, lookback)\n    retCode = lib.TA_MININDEX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <int *>(outinteger.data)+lookback )\n    _ta_check_success(\"TA_MININDEX\", retCode)\n    outinteger_data = <int*>outinteger.data\n    for i from lookback <= i < length:\n        outinteger_data[i] += begidx\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MINMAX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MINMAX(real[, timeperiod=?])\n\n    Lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        min\n        max\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outmin\n        np.ndarray outmax\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod )\n    outmin = make_double_array(length, lookback)\n    outmax = make_double_array(length, lookback)\n    retCode = lib.TA_MINMAX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outmin.data)+lookback , <double *>(outmax.data)+lookback )\n    _ta_check_success(\"TA_MINMAX\", retCode)\n    return outmin , outmax \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MINMAXINDEX(real[, timeperiod=?])\n\n    Indexes of lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        minidx\n        maxidx\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outminidx\n        np.ndarray outmaxidx\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod )\n    outminidx = make_int_array(length, lookback)\n    outmaxidx = make_int_array(length, lookback)\n    retCode = lib.TA_MINMAXINDEX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <int *>(outminidx.data)+lookback , <int *>(outmaxidx.data)+lookback )\n    _ta_check_success(\"TA_MINMAXINDEX\", retCode)\n    outminidx_data = <int*>outminidx.data\n    for i from lookback <= i < length:\n        outminidx_data[i] += begidx\n    outmaxidx_data = <int*>outmaxidx.data\n    for i from lookback <= i < length:\n        outmaxidx_data[i] += begidx\n    return outminidx , outmaxidx \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" MINUS_DI(high, low, close[, timeperiod=?])\n\n    Minus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MINUS_DI( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MINUS_DI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" MINUS_DM(high, low[, timeperiod=?])\n\n    Minus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MINUS_DM( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MINUS_DM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MOM( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MOM(real[, timeperiod=?])\n\n    Momentum (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MOM_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MOM( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MOM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef MULT( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" MULT(real0, real1)\n\n    Vector Arithmetic Mult (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_MULT_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_MULT( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_MULT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" NATR(high, low, close[, timeperiod=?])\n\n    Normalized Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_NATR_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_NATR( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_NATR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef OBV( np.ndarray real not None , np.ndarray volume not None ):\n    \"\"\" OBV(real, volume)\n\n    On Balance Volume (Volume Indicators)\n\n    Inputs:\n        real: (any ndarray)\n        prices: ['volume']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    volume = check_array(volume)\n    length = check_length2(real, volume)\n    begidx = check_begidx2(length, <double*>(real.data), <double*>(volume.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_OBV_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_OBV( 0 , endidx , <double *>(real.data)+begidx , <double *>(volume.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_OBV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" PLUS_DI(high, low, close[, timeperiod=?])\n\n    Plus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_PLUS_DI( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_PLUS_DI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" PLUS_DM(high, low[, timeperiod=?])\n\n    Plus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_PLUS_DM( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_PLUS_DM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ):\n    \"\"\" PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Percentage Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_PPO( 0 , endidx , <double *>(real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_PPO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ROC( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROC(real[, timeperiod=?])\n\n    Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ROC_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ROC( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ROC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ROCP( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCP(real[, timeperiod=?])\n\n    Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ROCP_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ROCP( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ROCP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ROCR( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCR(real[, timeperiod=?])\n\n    Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ROCR_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ROCR( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ROCR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ROCR100( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCR100(real[, timeperiod=?])\n\n    Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ROCR100( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ROCR100\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef RSI( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" RSI(real[, timeperiod=?])\n\n    Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_RSI_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_RSI( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_RSI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ):\n    \"\"\" SAR(high, low[, acceleration=?, maximum=?])\n\n    Parabolic SAR (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        acceleration: 0.02\n        maximum: 0.2\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SAR( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SAR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ):\n    \"\"\" SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n    Parabolic SAR - Extended (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        startvalue: 0.0\n        offsetonreverse: 0.0\n        accelerationinitlong: 0.02\n        accelerationlong: 0.02\n        accelerationmaxlong: 0.2\n        accelerationinitshort: 0.02\n        accelerationshort: 0.02\n        accelerationmaxshort: 0.2\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    length = check_length2(high, low)\n    begidx = check_begidx2(length, <double*>(high.data), <double*>(low.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SAREXT( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SAREXT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SIN( np.ndarray real not None ):\n    \"\"\" SIN(real)\n\n    Vector Trigonometric Sin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SIN_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SIN( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SINH( np.ndarray real not None ):\n    \"\"\" SINH(real)\n\n    Vector Trigonometric Sinh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SINH_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SINH( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SINH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" SMA(real[, timeperiod=?])\n\n    Simple Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SQRT( np.ndarray real not None ):\n    \"\"\" SQRT(real)\n\n    Vector Square Root (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SQRT_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SQRT( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SQRT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ):\n    \"\"\" STDDEV(real[, timeperiod=?, nbdev=?])\n\n    Standard Deviation (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1.0\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_STDDEV( 0 , endidx , <double *>(real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_STDDEV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=0 , int slowd_period=-2**31 , int slowd_matype=0 ):\n    \"\"\" STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n    Stochastic (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        slowk_period: 3\n        slowk_matype: 0\n        slowd_period: 3\n        slowd_matype: 0\n    Outputs:\n        slowk\n        slowd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outslowk\n        np.ndarray outslowd\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype )\n    outslowk = make_double_array(length, lookback)\n    outslowd = make_double_array(length, lookback)\n    retCode = lib.TA_STOCH( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , <double *>(outslowk.data)+lookback , <double *>(outslowd.data)+lookback )\n    _ta_check_success(\"TA_STOCH\", retCode)\n    return outslowk , outslowd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ):\n    \"\"\" STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Fast (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outfastk\n        np.ndarray outfastd\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype )\n    outfastk = make_double_array(length, lookback)\n    outfastd = make_double_array(length, lookback)\n    retCode = lib.TA_STOCHF( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , <double *>(outfastk.data)+lookback , <double *>(outfastd.data)+lookback )\n    _ta_check_success(\"TA_STOCHF\", retCode)\n    return outfastk , outfastd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ):\n    \"\"\" STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outfastk\n        np.ndarray outfastd\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype )\n    outfastk = make_double_array(length, lookback)\n    outfastd = make_double_array(length, lookback)\n    retCode = lib.TA_STOCHRSI( 0 , endidx , <double *>(real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , <double *>(outfastk.data)+lookback , <double *>(outfastd.data)+lookback )\n    _ta_check_success(\"TA_STOCHRSI\", retCode)\n    return outfastk , outfastd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SUB( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" SUB(real0, real1)\n\n    Vector Arithmetic Subtraction (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real0 = check_array(real0)\n    real1 = check_array(real1)\n    length = check_length2(real0, real1)\n    begidx = check_begidx2(length, <double*>(real0.data), <double*>(real1.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SUB_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SUB( 0 , endidx , <double *>(real0.data)+begidx , <double *>(real1.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SUB\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef SUM( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" SUM(real[, timeperiod=?])\n\n    Summation (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_SUM_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_SUM( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_SUM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ):\n    \"\"\" T3(real[, timeperiod=?, vfactor=?])\n\n    Triple Exponential Moving Average (T3) (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        vfactor: 0.7\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_T3( 0 , endidx , <double *>(real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_T3\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TAN( np.ndarray real not None ):\n    \"\"\" TAN(real)\n\n    Vector Trigonometric Tan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TAN_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TAN( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TAN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TANH( np.ndarray real not None ):\n    \"\"\" TANH(real)\n\n    Vector Trigonometric Tanh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TANH_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TANH( 0 , endidx , <double *>(real.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TANH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TEMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TEMA(real[, timeperiod=?])\n\n    Triple Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TEMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TEMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TEMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" TRANGE(high, low, close)\n\n    True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TRANGE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TRANGE( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TRANGE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TRIMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TRIMA(real[, timeperiod=?])\n\n    Triangular Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TRIMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TRIMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TRIX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TRIX(real[, timeperiod=?])\n\n    1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TRIX_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TRIX( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TRIX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TSF( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TSF(real[, timeperiod=?])\n\n    Time Series Forecast (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TSF_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TSF( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TSF\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" TYPPRICE(high, low, close)\n\n    Typical Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_TYPPRICE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_TYPPRICE( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_TYPPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ):\n    \"\"\" ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n    Ultimate Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod1: 7\n        timeperiod2: 14\n        timeperiod3: 28\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_ULTOSC( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_ULTOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ):\n    \"\"\" VAR(real[, timeperiod=?, nbdev=?])\n\n    Variance (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1.0\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_VAR( 0 , endidx , <double *>(real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_VAR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" WCLPRICE(high, low, close)\n\n    Weighted Close Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_WCLPRICE_Lookback( )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_WCLPRICE( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_WCLPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" WILLR(high, low, close[, timeperiod=?])\n\n    Williams' %R (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    high = check_array(high)\n    low = check_array(low)\n    close = check_array(close)\n    length = check_length3(high, low, close)\n    begidx = check_begidx3(length, <double*>(high.data), <double*>(low.data), <double*>(close.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_WILLR_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_WILLR( 0 , endidx , <double *>(high.data)+begidx , <double *>(low.data)+begidx , <double *>(close.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_WILLR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef WMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" WMA(real[, timeperiod=?])\n\n    Weighted Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        int begidx, endidx, lookback\n        TA_RetCode retCode\n        int outbegidx\n        int outnbelement\n        np.ndarray outreal\n    real = check_array(real)\n    length = real.shape[0]\n    begidx = check_begidx1(length, <double*>(real.data))\n    endidx = <int>length - begidx - 1\n    lookback = begidx + lib.TA_WMA_Lookback( timeperiod )\n    outreal = make_double_array(length, lookback)\n    retCode = lib.TA_WMA( 0 , endidx , <double *>(real.data)+begidx , timeperiod , &outbegidx , &outnbelement , <double *>(outreal.data)+lookback )\n    _ta_check_success(\"TA_WMA\", retCode)\n    return outreal \n\n__TA_FUNCTION_NAMES__ = [\"ACCBANDS\",\"ACOS\",\"AD\",\"ADD\",\"ADOSC\",\"ADX\",\"ADXR\",\"APO\",\"AROON\",\"AROONOSC\",\"ASIN\",\"ATAN\",\"ATR\",\"AVGPRICE\",\"AVGDEV\",\"BBANDS\",\"BETA\",\"BOP\",\"CCI\",\"CDL2CROWS\",\"CDL3BLACKCROWS\",\"CDL3INSIDE\",\"CDL3LINESTRIKE\",\"CDL3OUTSIDE\",\"CDL3STARSINSOUTH\",\"CDL3WHITESOLDIERS\",\"CDLABANDONEDBABY\",\"CDLADVANCEBLOCK\",\"CDLBELTHOLD\",\"CDLBREAKAWAY\",\"CDLCLOSINGMARUBOZU\",\"CDLCONCEALBABYSWALL\",\"CDLCOUNTERATTACK\",\"CDLDARKCLOUDCOVER\",\"CDLDOJI\",\"CDLDOJISTAR\",\"CDLDRAGONFLYDOJI\",\"CDLENGULFING\",\"CDLEVENINGDOJISTAR\",\"CDLEVENINGSTAR\",\"CDLGAPSIDESIDEWHITE\",\"CDLGRAVESTONEDOJI\",\"CDLHAMMER\",\"CDLHANGINGMAN\",\"CDLHARAMI\",\"CDLHARAMICROSS\",\"CDLHIGHWAVE\",\"CDLHIKKAKE\",\"CDLHIKKAKEMOD\",\"CDLHOMINGPIGEON\",\"CDLIDENTICAL3CROWS\",\"CDLINNECK\",\"CDLINVERTEDHAMMER\",\"CDLKICKING\",\"CDLKICKINGBYLENGTH\",\"CDLLADDERBOTTOM\",\"CDLLONGLEGGEDDOJI\",\"CDLLONGLINE\",\"CDLMARUBOZU\",\"CDLMATCHINGLOW\",\"CDLMATHOLD\",\"CDLMORNINGDOJISTAR\",\"CDLMORNINGSTAR\",\"CDLONNECK\",\"CDLPIERCING\",\"CDLRICKSHAWMAN\",\"CDLRISEFALL3METHODS\",\"CDLSEPARATINGLINES\",\"CDLSHOOTINGSTAR\",\"CDLSHORTLINE\",\"CDLSPINNINGTOP\",\"CDLSTALLEDPATTERN\",\"CDLSTICKSANDWICH\",\"CDLTAKURI\",\"CDLTASUKIGAP\",\"CDLTHRUSTING\",\"CDLTRISTAR\",\"CDLUNIQUE3RIVER\",\"CDLUPSIDEGAP2CROWS\",\"CDLXSIDEGAP3METHODS\",\"CEIL\",\"CMO\",\"CORREL\",\"COS\",\"COSH\",\"DEMA\",\"DIV\",\"DX\",\"EMA\",\"EXP\",\"FLOOR\",\"HT_DCPERIOD\",\"HT_DCPHASE\",\"HT_PHASOR\",\"HT_SINE\",\"HT_TRENDLINE\",\"HT_TRENDMODE\",\"IMI\",\"KAMA\",\"LINEARREG\",\"LINEARREG_ANGLE\",\"LINEARREG_INTERCEPT\",\"LINEARREG_SLOPE\",\"LN\",\"LOG10\",\"MA\",\"MACD\",\"MACDEXT\",\"MACDFIX\",\"MAMA\",\"MAVP\",\"MAX\",\"MAXINDEX\",\"MEDPRICE\",\"MFI\",\"MIDPOINT\",\"MIDPRICE\",\"MIN\",\"MININDEX\",\"MINMAX\",\"MINMAXINDEX\",\"MINUS_DI\",\"MINUS_DM\",\"MOM\",\"MULT\",\"NATR\",\"OBV\",\"PLUS_DI\",\"PLUS_DM\",\"PPO\",\"ROC\",\"ROCP\",\"ROCR\",\"ROCR100\",\"RSI\",\"SAR\",\"SAREXT\",\"SIN\",\"SINH\",\"SMA\",\"SQRT\",\"STDDEV\",\"STOCH\",\"STOCHF\",\"STOCHRSI\",\"SUB\",\"SUM\",\"T3\",\"TAN\",\"TANH\",\"TEMA\",\"TRANGE\",\"TRIMA\",\"TRIX\",\"TSF\",\"TYPPRICE\",\"ULTOSC\",\"VAR\",\"WCLPRICE\",\"WILLR\",\"WMA\"]\n"
  },
  {
    "path": "talib/_stream.pxi",
    "content": "cimport numpy as np\nfrom cython import boundscheck, wraparound\ncimport _ta_lib as lib\nfrom _ta_lib cimport TA_RetCode\n# NOTE: _ta_check_success, NaN are defined in common.pxi\n\nnp.import_array() # Initialize the NumPy C API\n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ACCBANDS(high, low, close[, timeperiod=?])\n\n    Acceleration Bands (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 20\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outrealupperband\n        double outrealmiddleband\n        double outreallowerband\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outrealupperband = NaN\n    outrealmiddleband = NaN\n    outreallowerband = NaN\n    retCode = lib.TA_ACCBANDS( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband )\n    _ta_check_success(\"TA_ACCBANDS\", retCode)\n    return outrealupperband , outrealmiddleband , outreallowerband \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ACOS( np.ndarray real not None ):\n    \"\"\" ACOS(real)\n\n    Vector Trigonometric ACos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ACOS( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ACOS\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ):\n    \"\"\" AD(high, low, close, volume)\n\n    Chaikin A/D Line (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        double* volume_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    volume = check_array(volume)\n    volume_data = <double*>volume.data\n    length = check_length4(high, low, close, volume)\n    outreal = NaN\n    retCode = lib.TA_AD( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_AD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" ADD(real0, real1)\n\n    Vector Arithmetic Add (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_ADD( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ADD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ADOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2**31 ):\n    \"\"\" ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n    Chaikin A/D Oscillator (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        fastperiod: 3\n        slowperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        double* volume_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    volume = check_array(volume)\n    volume_data = <double*>volume.data\n    length = check_length4(high, low, close, volume)\n    outreal = NaN\n    retCode = lib.TA_ADOSC( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ADOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ADX(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_ADX( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ADX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ADXR(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index Rating (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_ADXR( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ADXR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ):\n    \"\"\" APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Absolute Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_APO( <int>(length) - 1 , <int>(length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_APO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" AROON(high, low[, timeperiod=?])\n\n    Aroon (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        aroondown\n        aroonup\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outaroondown\n        double outaroonup\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outaroondown = NaN\n    outaroonup = NaN\n    retCode = lib.TA_AROON( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup )\n    _ta_check_success(\"TA_AROON\", retCode)\n    return outaroondown , outaroonup \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" AROONOSC(high, low[, timeperiod=?])\n\n    Aroon Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_AROONOSC( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_AROONOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ASIN( np.ndarray real not None ):\n    \"\"\" ASIN(real)\n\n    Vector Trigonometric ASin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ASIN( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ASIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ATAN( np.ndarray real not None ):\n    \"\"\" ATAN(real)\n\n    Vector Trigonometric ATan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ATAN( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ATAN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" ATR(high, low, close[, timeperiod=?])\n\n    Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_ATR( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ATR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" AVGPRICE(open, high, low, close)\n\n    Average Price (Price Transform)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outreal = NaN\n    retCode = lib.TA_AVGPRICE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_AVGPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" AVGDEV(real[, timeperiod=?])\n\n    Average Deviation (Price Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_AVGDEV( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_AVGDEV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ):\n    \"\"\" BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n    Bollinger Bands (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdevup: 2.0\n        nbdevdn: 2.0\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outrealupperband\n        double outrealmiddleband\n        double outreallowerband\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outrealupperband = NaN\n    outrealmiddleband = NaN\n    outreallowerband = NaN\n    retCode = lib.TA_BBANDS( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband )\n    _ta_check_success(\"TA_BBANDS\", retCode)\n    return outrealupperband , outrealmiddleband , outreallowerband \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ):\n    \"\"\" BETA(real0, real1[, timeperiod=?])\n\n    Beta (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 5\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_BETA( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_BETA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" BOP(open, high, low, close)\n\n    Balance Of Power (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outreal = NaN\n    retCode = lib.TA_BOP( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_BOP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" CCI(high, low, close[, timeperiod=?])\n\n    Commodity Channel Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_CCI( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_CCI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL2CROWS(open, high, low, close)\n\n    Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL2CROWS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL2CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3BLACKCROWS(open, high, low, close)\n\n    Three Black Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3BLACKCROWS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3BLACKCROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3INSIDE(open, high, low, close)\n\n    Three Inside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3INSIDE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3INSIDE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3LINESTRIKE(open, high, low, close)\n\n    Three-Line Strike  (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3LINESTRIKE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3LINESTRIKE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3OUTSIDE(open, high, low, close)\n\n    Three Outside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3OUTSIDE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3OUTSIDE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3STARSINSOUTH(open, high, low, close)\n\n    Three Stars In The South (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3STARSINSOUTH( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3STARSINSOUTH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDL3WHITESOLDIERS(open, high, low, close)\n\n    Three Advancing White Soldiers (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDL3WHITESOLDIERS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDL3WHITESOLDIERS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n    Abandoned Baby (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLABANDONEDBABY( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLABANDONEDBABY\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLADVANCEBLOCK(open, high, low, close)\n\n    Advance Block (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLADVANCEBLOCK( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLADVANCEBLOCK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLBELTHOLD(open, high, low, close)\n\n    Belt-hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLBELTHOLD( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLBELTHOLD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLBREAKAWAY(open, high, low, close)\n\n    Breakaway (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLBREAKAWAY( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLBREAKAWAY\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCLOSINGMARUBOZU(open, high, low, close)\n\n    Closing Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLCLOSINGMARUBOZU( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLCLOSINGMARUBOZU\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCONCEALBABYSWALL(open, high, low, close)\n\n    Concealing Baby Swallow (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLCONCEALBABYSWALL( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLCONCEALBABYSWALL\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLCOUNTERATTACK(open, high, low, close)\n\n    Counterattack (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLCOUNTERATTACK( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLCOUNTERATTACK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ):\n    \"\"\" CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n    Dark Cloud Cover (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLDARKCLOUDCOVER( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLDARKCLOUDCOVER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDOJI(open, high, low, close)\n\n    Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLDOJI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDOJISTAR(open, high, low, close)\n\n    Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLDOJISTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLDRAGONFLYDOJI(open, high, low, close)\n\n    Dragonfly Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLDRAGONFLYDOJI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLDRAGONFLYDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLENGULFING(open, high, low, close)\n\n    Engulfing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLENGULFING( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLENGULFING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Evening Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLEVENINGDOJISTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLEVENINGDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n    Evening Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLEVENINGSTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLEVENINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n    Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLGAPSIDESIDEWHITE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLGAPSIDESIDEWHITE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLGRAVESTONEDOJI(open, high, low, close)\n\n    Gravestone Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLGRAVESTONEDOJI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLGRAVESTONEDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHAMMER(open, high, low, close)\n\n    Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHAMMER( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHAMMER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHANGINGMAN(open, high, low, close)\n\n    Hanging Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHANGINGMAN( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHANGINGMAN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHARAMI(open, high, low, close)\n\n    Harami Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHARAMI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHARAMI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHARAMICROSS(open, high, low, close)\n\n    Harami Cross Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHARAMICROSS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHARAMICROSS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIGHWAVE(open, high, low, close)\n\n    High-Wave Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHIGHWAVE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHIGHWAVE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIKKAKE(open, high, low, close)\n\n    Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHIKKAKE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHIKKAKE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHIKKAKEMOD(open, high, low, close)\n\n    Modified Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHIKKAKEMOD( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHIKKAKEMOD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLHOMINGPIGEON(open, high, low, close)\n\n    Homing Pigeon (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLHOMINGPIGEON( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLHOMINGPIGEON\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLIDENTICAL3CROWS(open, high, low, close)\n\n    Identical Three Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLIDENTICAL3CROWS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLIDENTICAL3CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLINNECK(open, high, low, close)\n\n    In-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLINNECK( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLINNECK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLINVERTEDHAMMER(open, high, low, close)\n\n    Inverted Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLINVERTEDHAMMER( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLINVERTEDHAMMER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLKICKING(open, high, low, close)\n\n    Kicking (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLKICKING( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLKICKING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLKICKINGBYLENGTH(open, high, low, close)\n\n    Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLKICKINGBYLENGTH( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLKICKINGBYLENGTH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLADDERBOTTOM(open, high, low, close)\n\n    Ladder Bottom (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLLADDERBOTTOM( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLLADDERBOTTOM\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLONGLEGGEDDOJI(open, high, low, close)\n\n    Long Legged Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLLONGLEGGEDDOJI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLLONGLEGGEDDOJI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLLONGLINE(open, high, low, close)\n\n    Long Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLLONGLINE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLLONGLINE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLMARUBOZU(open, high, low, close)\n\n    Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLMARUBOZU( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLMARUBOZU\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLMATCHINGLOW(open, high, low, close)\n\n    Matching Low (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLMATCHINGLOW( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLMATCHINGLOW\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ):\n    \"\"\" CDLMATHOLD(open, high, low, close[, penetration=?])\n\n    Mat Hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLMATHOLD( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLMATHOLD\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Morning Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLMORNINGDOJISTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLMORNINGDOJISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ):\n    \"\"\" CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n    Morning Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLMORNINGSTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLMORNINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLONNECK(open, high, low, close)\n\n    On-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLONNECK( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLONNECK\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLPIERCING(open, high, low, close)\n\n    Piercing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLPIERCING( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLPIERCING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLRICKSHAWMAN(open, high, low, close)\n\n    Rickshaw Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLRICKSHAWMAN( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLRICKSHAWMAN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLRISEFALL3METHODS(open, high, low, close)\n\n    Rising/Falling Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLRISEFALL3METHODS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLRISEFALL3METHODS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSEPARATINGLINES(open, high, low, close)\n\n    Separating Lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSEPARATINGLINES( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSEPARATINGLINES\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSHOOTINGSTAR(open, high, low, close)\n\n    Shooting Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSHOOTINGSTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSHOOTINGSTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSHORTLINE(open, high, low, close)\n\n    Short Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSHORTLINE( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSHORTLINE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSPINNINGTOP(open, high, low, close)\n\n    Spinning Top (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSPINNINGTOP( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSPINNINGTOP\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSTALLEDPATTERN(open, high, low, close)\n\n    Stalled Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSTALLEDPATTERN( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSTALLEDPATTERN\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLSTICKSANDWICH(open, high, low, close)\n\n    Stick Sandwich (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLSTICKSANDWICH( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLSTICKSANDWICH\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTAKURI(open, high, low, close)\n\n    Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLTAKURI( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLTAKURI\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTASUKIGAP(open, high, low, close)\n\n    Tasuki Gap (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLTASUKIGAP( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLTASUKIGAP\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTHRUSTING(open, high, low, close)\n\n    Thrusting Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLTHRUSTING( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLTHRUSTING\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLTRISTAR(open, high, low, close)\n\n    Tristar Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLTRISTAR( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLTRISTAR\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLUNIQUE3RIVER(open, high, low, close)\n\n    Unique 3 River (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLUNIQUE3RIVER( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLUNIQUE3RIVER\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n    Upside Gap Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLUPSIDEGAP2CROWS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLUPSIDEGAP2CROWS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" CDLXSIDEGAP3METHODS(open, high, low, close)\n\n    Upside/Downside Gap Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    open = check_array(open)\n    open_data = <double*>open.data\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length4(open, high, low, close)\n    outinteger = 0\n    retCode = lib.TA_CDLXSIDEGAP3METHODS( <int>(length) - 1 , <int>(length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_CDLXSIDEGAP3METHODS\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CEIL( np.ndarray real not None ):\n    \"\"\" CEIL(real)\n\n    Vector Ceil (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_CEIL( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_CEIL\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" CMO(real[, timeperiod=?])\n\n    Chande Momentum Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_CMO( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_CMO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ):\n    \"\"\" CORREL(real0, real1[, timeperiod=?])\n\n    Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_CORREL( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_CORREL\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_COS( np.ndarray real not None ):\n    \"\"\" COS(real)\n\n    Vector Trigonometric Cos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_COS( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_COS\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_COSH( np.ndarray real not None ):\n    \"\"\" COSH(real)\n\n    Vector Trigonometric Cosh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_COSH( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_COSH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" DEMA(real[, timeperiod=?])\n\n    Double Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_DEMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_DEMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" DIV(real0, real1)\n\n    Vector Arithmetic Div (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_DIV( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_DIV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" DX(high, low, close[, timeperiod=?])\n\n    Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_DX( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_DX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" EMA(real[, timeperiod=?])\n\n    Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_EMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_EMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_EXP( np.ndarray real not None ):\n    \"\"\" EXP(real)\n\n    Vector Arithmetic Exp (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_EXP( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_EXP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_FLOOR( np.ndarray real not None ):\n    \"\"\" FLOOR(real)\n\n    Vector Floor (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_FLOOR( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_FLOOR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_DCPERIOD( np.ndarray real not None ):\n    \"\"\" HT_DCPERIOD(real)\n\n    Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_HT_DCPERIOD( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_HT_DCPERIOD\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_DCPHASE( np.ndarray real not None ):\n    \"\"\" HT_DCPHASE(real)\n\n    Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_HT_DCPHASE( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_HT_DCPHASE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_PHASOR( np.ndarray real not None ):\n    \"\"\" HT_PHASOR(real)\n\n    Hilbert Transform - Phasor Components (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        inphase\n        quadrature\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outinphase\n        double outquadrature\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outinphase = NaN\n    outquadrature = NaN\n    retCode = lib.TA_HT_PHASOR( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature )\n    _ta_check_success(\"TA_HT_PHASOR\", retCode)\n    return outinphase , outquadrature \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_SINE( np.ndarray real not None ):\n    \"\"\" HT_SINE(real)\n\n    Hilbert Transform - SineWave (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        sine\n        leadsine\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outsine\n        double outleadsine\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outsine = NaN\n    outleadsine = NaN\n    retCode = lib.TA_HT_SINE( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine )\n    _ta_check_success(\"TA_HT_SINE\", retCode)\n    return outsine , outleadsine \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_TRENDLINE( np.ndarray real not None ):\n    \"\"\" HT_TRENDLINE(real)\n\n    Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_HT_TRENDLINE( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_HT_TRENDLINE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_HT_TRENDMODE( np.ndarray real not None ):\n    \"\"\" HT_TRENDMODE(real)\n\n    Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outinteger = 0\n    retCode = lib.TA_HT_TRENDMODE( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_HT_TRENDMODE\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" IMI(open, close[, timeperiod=?])\n\n    Intraday Momentum Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* open_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    open = check_array(open)\n    open_data = <double*>open.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length2(open, close)\n    outreal = NaN\n    retCode = lib.TA_IMI( <int>(length) - 1 , <int>(length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_IMI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" KAMA(real[, timeperiod=?])\n\n    Kaufman Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_KAMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_KAMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG(real[, timeperiod=?])\n\n    Linear Regression (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LINEARREG( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LINEARREG\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_ANGLE(real[, timeperiod=?])\n\n    Linear Regression Angle (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LINEARREG_ANGLE( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LINEARREG_ANGLE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n    Linear Regression Intercept (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LINEARREG_INTERCEPT( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LINEARREG_INTERCEPT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" LINEARREG_SLOPE(real[, timeperiod=?])\n\n    Linear Regression Slope (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LINEARREG_SLOPE( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LINEARREG_SLOPE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LN( np.ndarray real not None ):\n    \"\"\" LN(real)\n\n    Vector Log Natural (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LN( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_LOG10( np.ndarray real not None ):\n    \"\"\" LOG10(real)\n\n    Vector Log10 (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_LOG10( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_LOG10\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ):\n    \"\"\" MA(real[, timeperiod=?, matype=?])\n\n    Moving average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_MA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ):\n    \"\"\" MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n    Moving Average Convergence/Divergence (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outmacd\n        double outmacdsignal\n        double outmacdhist\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outmacd = NaN\n    outmacdsignal = NaN\n    outmacdhist = NaN\n    retCode = lib.TA_MACD( <int>(length) - 1 , <int>(length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist )\n    _ta_check_success(\"TA_MACD\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ):\n    \"\"\" MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n    MACD with controllable MA type (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        fastmatype: 0\n        slowperiod: 26\n        slowmatype: 0\n        signalperiod: 9\n        signalmatype: 0\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outmacd\n        double outmacdsignal\n        double outmacdhist\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outmacd = NaN\n    outmacdsignal = NaN\n    outmacdhist = NaN\n    retCode = lib.TA_MACDEXT( <int>(length) - 1 , <int>(length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist )\n    _ta_check_success(\"TA_MACDEXT\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ):\n    \"\"\" MACDFIX(real[, signalperiod=?])\n\n    Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outmacd\n        double outmacdsignal\n        double outmacdhist\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outmacd = NaN\n    outmacdsignal = NaN\n    outmacdhist = NaN\n    retCode = lib.TA_MACDFIX( <int>(length) - 1 , <int>(length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist )\n    _ta_check_success(\"TA_MACDFIX\", retCode)\n    return outmacd , outmacdsignal , outmacdhist \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ):\n    \"\"\" MAMA(real[, fastlimit=?, slowlimit=?])\n\n    MESA Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastlimit: 0.5\n        slowlimit: 0.05\n    Outputs:\n        mama\n        fama\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outmama\n        double outfama\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outmama = NaN\n    outfama = NaN\n    retCode = lib.TA_MAMA( <int>(length) - 1 , <int>(length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama )\n    _ta_check_success(\"TA_MAMA\", retCode)\n    return outmama , outfama \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ):\n    \"\"\" MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n    Moving average with variable period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n        periods: (any ndarray)\n    Parameters:\n        minperiod: 2\n        maxperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        double* periods_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    periods = check_array(periods)\n    periods_data = <double*>periods.data\n    length = check_length2(real, periods)\n    outreal = NaN\n    retCode = lib.TA_MAVP( <int>(length) - 1 , <int>(length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MAVP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MAX(real[, timeperiod=?])\n\n    Highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_MAX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MAX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MAXINDEX(real[, timeperiod=?])\n\n    Index of highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outinteger = 0\n    retCode = lib.TA_MAXINDEX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_MAXINDEX\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ):\n    \"\"\" MEDPRICE(high, low)\n\n    Median Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_MEDPRICE( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MEDPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ):\n    \"\"\" MFI(high, low, close, volume[, timeperiod=?])\n\n    Money Flow Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        double* volume_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    volume = check_array(volume)\n    volume_data = <double*>volume.data\n    length = check_length4(high, low, close, volume)\n    outreal = NaN\n    retCode = lib.TA_MFI( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MFI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MIDPOINT(real[, timeperiod=?])\n\n    MidPoint over period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_MIDPOINT( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MIDPOINT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" MIDPRICE(high, low[, timeperiod=?])\n\n    Midpoint Price over period (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_MIDPRICE( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MIDPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MIN(real[, timeperiod=?])\n\n    Lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_MIN( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MININDEX(real[, timeperiod=?])\n\n    Index of lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        int outinteger\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outinteger = 0\n    retCode = lib.TA_MININDEX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger )\n    _ta_check_success(\"TA_MININDEX\", retCode)\n    return outinteger \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MINMAX(real[, timeperiod=?])\n\n    Lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        min\n        max\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outmin\n        double outmax\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outmin = NaN\n    outmax = NaN\n    retCode = lib.TA_MINMAX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax )\n    _ta_check_success(\"TA_MINMAX\", retCode)\n    return outmin , outmax \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MINMAXINDEX(real[, timeperiod=?])\n\n    Indexes of lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        minidx\n        maxidx\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        int outminidx\n        int outmaxidx\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outminidx = 0\n    outmaxidx = 0\n    retCode = lib.TA_MINMAXINDEX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx )\n    _ta_check_success(\"TA_MINMAXINDEX\", retCode)\n    return outminidx , outmaxidx \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" MINUS_DI(high, low, close[, timeperiod=?])\n\n    Minus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_MINUS_DI( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MINUS_DI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" MINUS_DM(high, low[, timeperiod=?])\n\n    Minus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_MINUS_DM( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MINUS_DM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" MOM(real[, timeperiod=?])\n\n    Momentum (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_MOM( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MOM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" MULT(real0, real1)\n\n    Vector Arithmetic Mult (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_MULT( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_MULT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" NATR(high, low, close[, timeperiod=?])\n\n    Normalized Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_NATR( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_NATR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_OBV( np.ndarray real not None , np.ndarray volume not None ):\n    \"\"\" OBV(real, volume)\n\n    On Balance Volume (Volume Indicators)\n\n    Inputs:\n        real: (any ndarray)\n        prices: ['volume']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        double* volume_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    volume = check_array(volume)\n    volume_data = <double*>volume.data\n    length = check_length2(real, volume)\n    outreal = NaN\n    retCode = lib.TA_OBV( <int>(length) - 1 , <int>(length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_OBV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" PLUS_DI(high, low, close[, timeperiod=?])\n\n    Plus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_PLUS_DI( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_PLUS_DI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ):\n    \"\"\" PLUS_DM(high, low[, timeperiod=?])\n\n    Plus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_PLUS_DM( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_PLUS_DM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ):\n    \"\"\" PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Percentage Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_PPO( <int>(length) - 1 , <int>(length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_PPO\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROC(real[, timeperiod=?])\n\n    Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ROC( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ROC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCP(real[, timeperiod=?])\n\n    Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ROCP( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ROCP\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCR(real[, timeperiod=?])\n\n    Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ROCR( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ROCR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" ROCR100(real[, timeperiod=?])\n\n    Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_ROCR100( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ROCR100\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" RSI(real[, timeperiod=?])\n\n    Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_RSI( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_RSI\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ):\n    \"\"\" SAR(high, low[, acceleration=?, maximum=?])\n\n    Parabolic SAR (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        acceleration: 0.02\n        maximum: 0.2\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_SAR( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SAR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ):\n    \"\"\" SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n    Parabolic SAR - Extended (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        startvalue: 0.0\n        offsetonreverse: 0.0\n        accelerationinitlong: 0.02\n        accelerationlong: 0.02\n        accelerationmaxlong: 0.2\n        accelerationinitshort: 0.02\n        accelerationshort: 0.02\n        accelerationmaxshort: 0.2\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    length = check_length2(high, low)\n    outreal = NaN\n    retCode = lib.TA_SAREXT( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SAREXT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SIN( np.ndarray real not None ):\n    \"\"\" SIN(real)\n\n    Vector Trigonometric Sin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_SIN( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SIN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SINH( np.ndarray real not None ):\n    \"\"\" SINH(real)\n\n    Vector Trigonometric Sinh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_SINH( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SINH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" SMA(real[, timeperiod=?])\n\n    Simple Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_SMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SQRT( np.ndarray real not None ):\n    \"\"\" SQRT(real)\n\n    Vector Square Root (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_SQRT( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SQRT\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ):\n    \"\"\" STDDEV(real[, timeperiod=?, nbdev=?])\n\n    Standard Deviation (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1.0\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_STDDEV( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_STDDEV\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=0 , int slowd_period=-2**31 , int slowd_matype=0 ):\n    \"\"\" STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n    Stochastic (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        slowk_period: 3\n        slowk_matype: 0\n        slowd_period: 3\n        slowd_matype: 0\n    Outputs:\n        slowk\n        slowd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outslowk\n        double outslowd\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outslowk = NaN\n    outslowd = NaN\n    retCode = lib.TA_STOCH( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd )\n    _ta_check_success(\"TA_STOCH\", retCode)\n    return outslowk , outslowd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ):\n    \"\"\" STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Fast (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outfastk\n        double outfastd\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outfastk = NaN\n    outfastd = NaN\n    retCode = lib.TA_STOCHF( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd )\n    _ta_check_success(\"TA_STOCHF\", retCode)\n    return outfastk , outfastd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ):\n    \"\"\" STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outfastk\n        double outfastd\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outfastk = NaN\n    outfastd = NaN\n    retCode = lib.TA_STOCHRSI( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd )\n    _ta_check_success(\"TA_STOCHRSI\", retCode)\n    return outfastk , outfastd \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ):\n    \"\"\" SUB(real0, real1)\n\n    Vector Arithmetic Subtraction (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real0_data\n        double* real1_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real0 = check_array(real0)\n    real0_data = <double*>real0.data\n    real1 = check_array(real1)\n    real1_data = <double*>real1.data\n    length = check_length2(real0, real1)\n    outreal = NaN\n    retCode = lib.TA_SUB( <int>(length) - 1 , <int>(length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SUB\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" SUM(real[, timeperiod=?])\n\n    Summation (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_SUM( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_SUM\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ):\n    \"\"\" T3(real[, timeperiod=?, vfactor=?])\n\n    Triple Exponential Moving Average (T3) (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        vfactor: 0.7\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_T3( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_T3\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TAN( np.ndarray real not None ):\n    \"\"\" TAN(real)\n\n    Vector Trigonometric Tan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TAN( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TAN\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TANH( np.ndarray real not None ):\n    \"\"\" TANH(real)\n\n    Vector Trigonometric Tanh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TANH( <int>(length) - 1 , <int>(length) - 1 , real_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TANH\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TEMA(real[, timeperiod=?])\n\n    Triple Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TEMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TEMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" TRANGE(high, low, close)\n\n    True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_TRANGE( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TRANGE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TRIMA(real[, timeperiod=?])\n\n    Triangular Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TRIMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TRIMA\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TRIX(real[, timeperiod=?])\n\n    1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TRIX( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TRIX\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" TSF(real[, timeperiod=?])\n\n    Time Series Forecast (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_TSF( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TSF\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" TYPPRICE(high, low, close)\n\n    Typical Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_TYPPRICE( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_TYPPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ):\n    \"\"\" ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n    Ultimate Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod1: 7\n        timeperiod2: 14\n        timeperiod3: 28\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_ULTOSC( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_ULTOSC\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ):\n    \"\"\" VAR(real[, timeperiod=?, nbdev=?])\n\n    Variance (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1.0\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_VAR( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_VAR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ):\n    \"\"\" WCLPRICE(high, low, close)\n\n    Weighted Close Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_WCLPRICE( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_WCLPRICE\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ):\n    \"\"\" WILLR(high, low, close[, timeperiod=?])\n\n    Williams' %R (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* high_data\n        double* low_data\n        double* close_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    high = check_array(high)\n    high_data = <double*>high.data\n    low = check_array(low)\n    low_data = <double*>low.data\n    close = check_array(close)\n    close_data = <double*>close.data\n    length = check_length3(high, low, close)\n    outreal = NaN\n    retCode = lib.TA_WILLR( <int>(length) - 1 , <int>(length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_WILLR\", retCode)\n    return outreal \n\n@wraparound(False)  # turn off relative indexing from end of lists\n@boundscheck(False) # turn off bounds-checking for entire function\ndef stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ):\n    \"\"\" WMA(real[, timeperiod=?])\n\n    Weighted Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    \"\"\"\n    cdef:\n        np.npy_intp length\n        TA_RetCode retCode\n        double* real_data\n        int outbegidx\n        int outnbelement\n        double outreal\n    real = check_array(real)\n    real_data = <double*>real.data\n    length = real.shape[0]\n    outreal = NaN\n    retCode = lib.TA_WMA( <int>(length) - 1 , <int>(length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal )\n    _ta_check_success(\"TA_WMA\", retCode)\n    return outreal \n\n"
  },
  {
    "path": "talib/_ta_lib.c",
    "content": "/* Generated by Cython 3.2.4 */\n\n#ifndef PY_SSIZE_T_CLEAN\n#define PY_SSIZE_T_CLEAN\n#endif /* PY_SSIZE_T_CLEAN */\n/* InitLimitedAPI */\n#if defined(Py_LIMITED_API)\n  #if !defined(CYTHON_LIMITED_API)\n  #define CYTHON_LIMITED_API 1\n  #endif\n#elif defined(CYTHON_LIMITED_API)\n  #ifdef _MSC_VER\n  #pragma message (\"Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.\")\n  #else\n  #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.\n  #endif\n#endif\n\n#include \"Python.h\"\n#ifndef Py_PYTHON_H\n    #error Python headers needed to compile C extensions, please install development version of Python.\n#elif PY_VERSION_HEX < 0x03080000\n    #error Cython requires Python 3.8+.\n#else\n#define __PYX_ABI_VERSION \"3_2_4\"\n#define CYTHON_HEX_VERSION 0x030204F0\n#define CYTHON_FUTURE_DIVISION 0\n/* CModulePreamble */\n#include <stddef.h>\n#ifndef offsetof\n  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )\n#endif\n#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)\n  #ifndef __stdcall\n    #define __stdcall\n  #endif\n  #ifndef __cdecl\n    #define __cdecl\n  #endif\n  #ifndef __fastcall\n    #define __fastcall\n  #endif\n#endif\n#ifndef DL_IMPORT\n  #define DL_IMPORT(t) t\n#endif\n#ifndef DL_EXPORT\n  #define DL_EXPORT(t) t\n#endif\n#define __PYX_COMMA ,\n#ifndef PY_LONG_LONG\n  #define PY_LONG_LONG LONG_LONG\n#endif\n#ifndef Py_HUGE_VAL\n  #define Py_HUGE_VAL HUGE_VAL\n#endif\n#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX\n#if defined(GRAALVM_PYTHON)\n  /* For very preliminary testing purposes. Most variables are set the same as PyPy.\n     The existence of this section does not imply that anything works or is even tested */\n  #define CYTHON_COMPILING_IN_PYPY 0\n  #define CYTHON_COMPILING_IN_CPYTHON 0\n  #define CYTHON_COMPILING_IN_LIMITED_API 0\n  #define CYTHON_COMPILING_IN_GRAAL 1\n  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0\n  #undef CYTHON_USE_TYPE_SLOTS\n  #define CYTHON_USE_TYPE_SLOTS 0\n  #undef CYTHON_USE_TYPE_SPECS\n  #define CYTHON_USE_TYPE_SPECS 0\n  #undef CYTHON_USE_PYTYPE_LOOKUP\n  #define CYTHON_USE_PYTYPE_LOOKUP 0\n  #undef CYTHON_USE_PYLIST_INTERNALS\n  #define CYTHON_USE_PYLIST_INTERNALS 0\n  #undef CYTHON_USE_UNICODE_INTERNALS\n  #define CYTHON_USE_UNICODE_INTERNALS 0\n  #undef CYTHON_USE_UNICODE_WRITER\n  #define CYTHON_USE_UNICODE_WRITER 0\n  #undef CYTHON_USE_PYLONG_INTERNALS\n  #define CYTHON_USE_PYLONG_INTERNALS 0\n  #undef CYTHON_AVOID_BORROWED_REFS\n  #define CYTHON_AVOID_BORROWED_REFS 1\n  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0\n  #undef CYTHON_ASSUME_SAFE_MACROS\n  #define CYTHON_ASSUME_SAFE_MACROS 0\n  #undef CYTHON_ASSUME_SAFE_SIZE\n  #define CYTHON_ASSUME_SAFE_SIZE 0\n  #undef CYTHON_UNPACK_METHODS\n  #define CYTHON_UNPACK_METHODS 0\n  #undef CYTHON_FAST_THREAD_STATE\n  #define CYTHON_FAST_THREAD_STATE 0\n  #undef CYTHON_FAST_GIL\n  #define CYTHON_FAST_GIL 0\n  #undef CYTHON_METH_FASTCALL\n  #define CYTHON_METH_FASTCALL 0\n  #undef CYTHON_FAST_PYCALL\n  #define CYTHON_FAST_PYCALL 0\n  #ifndef CYTHON_PEP487_INIT_SUBCLASS\n    #define CYTHON_PEP487_INIT_SUBCLASS 1\n  #endif\n  #undef CYTHON_PEP489_MULTI_PHASE_INIT\n  #define CYTHON_PEP489_MULTI_PHASE_INIT 1\n  #undef CYTHON_USE_MODULE_STATE\n  #define CYTHON_USE_MODULE_STATE 0\n  #undef CYTHON_USE_SYS_MONITORING\n  #define CYTHON_USE_SYS_MONITORING 0\n  #undef CYTHON_USE_TP_FINALIZE\n  #define CYTHON_USE_TP_FINALIZE 0\n  #undef CYTHON_USE_AM_SEND\n  #define CYTHON_USE_AM_SEND 0\n  #undef CYTHON_USE_DICT_VERSIONS\n  #define CYTHON_USE_DICT_VERSIONS 0\n  #undef CYTHON_USE_EXC_INFO_STACK\n  #define CYTHON_USE_EXC_INFO_STACK 1\n  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC\n    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0\n  #endif\n  #undef CYTHON_USE_FREELISTS\n  #define CYTHON_USE_FREELISTS 0\n  #undef CYTHON_IMMORTAL_CONSTANTS\n  #define CYTHON_IMMORTAL_CONSTANTS 0\n#elif defined(PYPY_VERSION)\n  #define CYTHON_COMPILING_IN_PYPY 1\n  #define CYTHON_COMPILING_IN_CPYTHON 0\n  #define CYTHON_COMPILING_IN_LIMITED_API 0\n  #define CYTHON_COMPILING_IN_GRAAL 0\n  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0\n  #undef CYTHON_USE_TYPE_SLOTS\n  #define CYTHON_USE_TYPE_SLOTS 1\n  #ifndef CYTHON_USE_TYPE_SPECS\n    #define CYTHON_USE_TYPE_SPECS 0\n  #endif\n  #undef CYTHON_USE_PYTYPE_LOOKUP\n  #define CYTHON_USE_PYTYPE_LOOKUP 0\n  #undef CYTHON_USE_PYLIST_INTERNALS\n  #define CYTHON_USE_PYLIST_INTERNALS 0\n  #undef CYTHON_USE_UNICODE_INTERNALS\n  #define CYTHON_USE_UNICODE_INTERNALS 0\n  #undef CYTHON_USE_UNICODE_WRITER\n  #define CYTHON_USE_UNICODE_WRITER 0\n  #undef CYTHON_USE_PYLONG_INTERNALS\n  #define CYTHON_USE_PYLONG_INTERNALS 0\n  #undef CYTHON_AVOID_BORROWED_REFS\n  #define CYTHON_AVOID_BORROWED_REFS 1\n  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1\n  #undef CYTHON_ASSUME_SAFE_MACROS\n  #define CYTHON_ASSUME_SAFE_MACROS 0\n  #ifndef CYTHON_ASSUME_SAFE_SIZE\n    #define CYTHON_ASSUME_SAFE_SIZE 1\n  #endif\n  #undef CYTHON_UNPACK_METHODS\n  #define CYTHON_UNPACK_METHODS 0\n  #undef CYTHON_FAST_THREAD_STATE\n  #define CYTHON_FAST_THREAD_STATE 0\n  #undef CYTHON_FAST_GIL\n  #define CYTHON_FAST_GIL 0\n  #undef CYTHON_METH_FASTCALL\n  #define CYTHON_METH_FASTCALL 0\n  #undef CYTHON_FAST_PYCALL\n  #define CYTHON_FAST_PYCALL 0\n  #ifndef CYTHON_PEP487_INIT_SUBCLASS\n    #define CYTHON_PEP487_INIT_SUBCLASS 1\n  #endif\n  #if PY_VERSION_HEX < 0x03090000\n    #undef CYTHON_PEP489_MULTI_PHASE_INIT\n    #define CYTHON_PEP489_MULTI_PHASE_INIT 0\n  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)\n    #define CYTHON_PEP489_MULTI_PHASE_INIT 1\n  #endif\n  #undef CYTHON_USE_MODULE_STATE\n  #define CYTHON_USE_MODULE_STATE 0\n  #undef CYTHON_USE_SYS_MONITORING\n  #define CYTHON_USE_SYS_MONITORING 0\n  #ifndef CYTHON_USE_TP_FINALIZE\n    #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)\n  #endif\n  #undef CYTHON_USE_AM_SEND\n  #define CYTHON_USE_AM_SEND 0\n  #undef CYTHON_USE_DICT_VERSIONS\n  #define CYTHON_USE_DICT_VERSIONS 0\n  #undef CYTHON_USE_EXC_INFO_STACK\n  #define CYTHON_USE_EXC_INFO_STACK 0\n  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC\n    #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)\n  #endif\n  #undef CYTHON_USE_FREELISTS\n  #define CYTHON_USE_FREELISTS 0\n  #undef CYTHON_IMMORTAL_CONSTANTS\n  #define CYTHON_IMMORTAL_CONSTANTS 0\n#elif defined(CYTHON_LIMITED_API)\n  #ifdef Py_LIMITED_API\n    #undef __PYX_LIMITED_VERSION_HEX\n    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API\n  #endif\n  #define CYTHON_COMPILING_IN_PYPY 0\n  #define CYTHON_COMPILING_IN_CPYTHON 0\n  #define CYTHON_COMPILING_IN_LIMITED_API 1\n  #define CYTHON_COMPILING_IN_GRAAL 0\n  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0\n  #undef CYTHON_USE_TYPE_SLOTS\n  #define CYTHON_USE_TYPE_SLOTS 0\n  #undef CYTHON_USE_TYPE_SPECS\n  #define CYTHON_USE_TYPE_SPECS 1\n  #undef CYTHON_USE_PYTYPE_LOOKUP\n  #define CYTHON_USE_PYTYPE_LOOKUP 0\n  #undef CYTHON_USE_PYLIST_INTERNALS\n  #define CYTHON_USE_PYLIST_INTERNALS 0\n  #undef CYTHON_USE_UNICODE_INTERNALS\n  #define CYTHON_USE_UNICODE_INTERNALS 0\n  #ifndef CYTHON_USE_UNICODE_WRITER\n    #define CYTHON_USE_UNICODE_WRITER 0\n  #endif\n  #undef CYTHON_USE_PYLONG_INTERNALS\n  #define CYTHON_USE_PYLONG_INTERNALS 0\n  #ifndef CYTHON_AVOID_BORROWED_REFS\n    #define CYTHON_AVOID_BORROWED_REFS 0\n  #endif\n  #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0\n  #endif\n  #undef CYTHON_ASSUME_SAFE_MACROS\n  #define CYTHON_ASSUME_SAFE_MACROS 0\n  #undef CYTHON_ASSUME_SAFE_SIZE\n  #define CYTHON_ASSUME_SAFE_SIZE 0\n  #undef CYTHON_UNPACK_METHODS\n  #define CYTHON_UNPACK_METHODS 0\n  #undef CYTHON_FAST_THREAD_STATE\n  #define CYTHON_FAST_THREAD_STATE 0\n  #undef CYTHON_FAST_GIL\n  #define CYTHON_FAST_GIL 0\n  #undef CYTHON_METH_FASTCALL\n  #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)\n  #undef CYTHON_FAST_PYCALL\n  #define CYTHON_FAST_PYCALL 0\n  #ifndef CYTHON_PEP487_INIT_SUBCLASS\n    #define CYTHON_PEP487_INIT_SUBCLASS 1\n  #endif\n  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT\n    #define CYTHON_PEP489_MULTI_PHASE_INIT 1\n  #endif\n  #ifndef CYTHON_USE_MODULE_STATE\n    #define CYTHON_USE_MODULE_STATE 0\n  #endif\n  #undef CYTHON_USE_SYS_MONITORING\n  #define CYTHON_USE_SYS_MONITORING 0\n  #ifndef CYTHON_USE_TP_FINALIZE\n    #define CYTHON_USE_TP_FINALIZE 0\n  #endif\n  #ifndef CYTHON_USE_AM_SEND\n    #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)\n  #endif\n  #undef CYTHON_USE_DICT_VERSIONS\n  #define CYTHON_USE_DICT_VERSIONS 0\n  #undef CYTHON_USE_EXC_INFO_STACK\n  #define CYTHON_USE_EXC_INFO_STACK 0\n  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC\n    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0\n  #endif\n  #ifndef CYTHON_USE_FREELISTS\n  #define CYTHON_USE_FREELISTS 1\n  #endif\n  #undef CYTHON_IMMORTAL_CONSTANTS\n  #define CYTHON_IMMORTAL_CONSTANTS 0\n#else\n  #define CYTHON_COMPILING_IN_PYPY 0\n  #define CYTHON_COMPILING_IN_CPYTHON 1\n  #define CYTHON_COMPILING_IN_LIMITED_API 0\n  #define CYTHON_COMPILING_IN_GRAAL 0\n  #ifdef Py_GIL_DISABLED\n    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1\n  #else\n    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0\n  #endif\n  #if PY_VERSION_HEX < 0x030A0000\n    #undef CYTHON_USE_TYPE_SLOTS\n    #define CYTHON_USE_TYPE_SLOTS 1\n  #elif !defined(CYTHON_USE_TYPE_SLOTS)\n    #define CYTHON_USE_TYPE_SLOTS 1\n  #endif\n  #ifndef CYTHON_USE_TYPE_SPECS\n    #define CYTHON_USE_TYPE_SPECS 0\n  #endif\n  #ifndef CYTHON_USE_PYTYPE_LOOKUP\n    #define CYTHON_USE_PYTYPE_LOOKUP 1\n  #endif\n  #ifndef CYTHON_USE_PYLONG_INTERNALS\n    #define CYTHON_USE_PYLONG_INTERNALS 1\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    #undef CYTHON_USE_PYLIST_INTERNALS\n    #define CYTHON_USE_PYLIST_INTERNALS 0\n  #elif !defined(CYTHON_USE_PYLIST_INTERNALS)\n    #define CYTHON_USE_PYLIST_INTERNALS 1\n  #endif\n  #ifndef CYTHON_USE_UNICODE_INTERNALS\n    #define CYTHON_USE_UNICODE_INTERNALS 1\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2\n    #undef CYTHON_USE_UNICODE_WRITER\n    #define CYTHON_USE_UNICODE_WRITER 0\n  #elif !defined(CYTHON_USE_UNICODE_WRITER)\n    #define CYTHON_USE_UNICODE_WRITER 1\n  #endif\n  #ifndef CYTHON_AVOID_BORROWED_REFS\n    #define CYTHON_AVOID_BORROWED_REFS 0\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1\n  #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)\n    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0\n  #endif\n  #ifndef CYTHON_ASSUME_SAFE_MACROS\n    #define CYTHON_ASSUME_SAFE_MACROS 1\n  #endif\n  #ifndef CYTHON_ASSUME_SAFE_SIZE\n    #define CYTHON_ASSUME_SAFE_SIZE 1\n  #endif\n  #ifndef CYTHON_UNPACK_METHODS\n    #define CYTHON_UNPACK_METHODS 1\n  #endif\n  #ifndef CYTHON_FAST_THREAD_STATE\n    #define CYTHON_FAST_THREAD_STATE 1\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    #undef CYTHON_FAST_GIL\n    #define CYTHON_FAST_GIL 0\n  #elif !defined(CYTHON_FAST_GIL)\n    #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)\n  #endif\n  #ifndef CYTHON_METH_FASTCALL\n    #define CYTHON_METH_FASTCALL 1\n  #endif\n  #ifndef CYTHON_FAST_PYCALL\n    #define CYTHON_FAST_PYCALL 1\n  #endif\n  #ifndef CYTHON_PEP487_INIT_SUBCLASS\n    #define CYTHON_PEP487_INIT_SUBCLASS 1\n  #endif\n  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT\n    #define CYTHON_PEP489_MULTI_PHASE_INIT 1\n  #endif\n  #ifndef CYTHON_USE_MODULE_STATE\n    #define CYTHON_USE_MODULE_STATE 0\n  #endif\n  #ifndef CYTHON_USE_SYS_MONITORING\n    #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)\n  #endif\n  #ifndef CYTHON_USE_TP_FINALIZE\n    #define CYTHON_USE_TP_FINALIZE 1\n  #endif\n  #ifndef CYTHON_USE_AM_SEND\n    #define CYTHON_USE_AM_SEND 1\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    #undef CYTHON_USE_DICT_VERSIONS\n    #define CYTHON_USE_DICT_VERSIONS 0\n  #elif !defined(CYTHON_USE_DICT_VERSIONS)\n    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)\n  #endif\n  #ifndef CYTHON_USE_EXC_INFO_STACK\n    #define CYTHON_USE_EXC_INFO_STACK 1\n  #endif\n  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC\n    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1\n  #endif\n  #ifndef CYTHON_USE_FREELISTS\n    #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)\n  #endif\n  #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000\n    #undef CYTHON_IMMORTAL_CONSTANTS\n    #define CYTHON_IMMORTAL_CONSTANTS 0  // definitely won't work\n  #elif !defined(CYTHON_IMMORTAL_CONSTANTS)\n    #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)\n  #endif\n#endif\n#ifndef CYTHON_COMPRESS_STRINGS\n  #define CYTHON_COMPRESS_STRINGS 1\n#endif\n#ifndef CYTHON_FAST_PYCCALL\n#define CYTHON_FAST_PYCCALL  CYTHON_FAST_PYCALL\n#endif\n#ifndef CYTHON_VECTORCALL\n#if CYTHON_COMPILING_IN_LIMITED_API\n#define CYTHON_VECTORCALL  (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)\n#else\n#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL)\n#endif\n#endif\n#if CYTHON_USE_PYLONG_INTERNALS\n  #undef SHIFT\n  #undef BASE\n  #undef MASK\n  #ifdef SIZEOF_VOID_P\n    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };\n  #endif\n#endif\n#ifndef __has_attribute\n  #define __has_attribute(x) 0\n#endif\n#ifndef __has_cpp_attribute\n  #define __has_cpp_attribute(x) 0\n#endif\n#ifndef CYTHON_RESTRICT\n  #if defined(__GNUC__)\n    #define CYTHON_RESTRICT __restrict__\n  #elif defined(_MSC_VER) && _MSC_VER >= 1400\n    #define CYTHON_RESTRICT __restrict\n  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n    #define CYTHON_RESTRICT restrict\n  #else\n    #define CYTHON_RESTRICT\n  #endif\n#endif\n#ifndef CYTHON_UNUSED\n  #if defined(__cplusplus)\n    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17\n     * but leads to warnings with -pedantic, since it is a C++17 feature */\n    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)\n      #if __has_cpp_attribute(maybe_unused)\n        #define CYTHON_UNUSED [[maybe_unused]]\n      #endif\n    #endif\n  #endif\n#endif\n#ifndef CYTHON_UNUSED\n# if defined(__GNUC__)\n#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))\n#     define CYTHON_UNUSED __attribute__ ((__unused__))\n#   else\n#     define CYTHON_UNUSED\n#   endif\n# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))\n#   define CYTHON_UNUSED __attribute__ ((__unused__))\n# else\n#   define CYTHON_UNUSED\n# endif\n#endif\n#ifndef CYTHON_UNUSED_VAR\n#  if defined(__cplusplus)\n     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }\n#  else\n#    define CYTHON_UNUSED_VAR(x) (void)(x)\n#  endif\n#endif\n#ifndef CYTHON_MAYBE_UNUSED_VAR\n  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)\n#endif\n#ifndef CYTHON_NCP_UNUSED\n# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n#  define CYTHON_NCP_UNUSED\n# else\n#  define CYTHON_NCP_UNUSED CYTHON_UNUSED\n# endif\n#endif\n#ifndef CYTHON_USE_CPP_STD_MOVE\n  #if defined(__cplusplus) && (\\\n    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))\n    #define CYTHON_USE_CPP_STD_MOVE 1\n  #else\n    #define CYTHON_USE_CPP_STD_MOVE 0\n  #endif\n#endif\n#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)\n#include <stdint.h>\ntypedef uintptr_t  __pyx_uintptr_t;\n#ifndef CYTHON_FALLTHROUGH\n  #if defined(__cplusplus)\n    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17\n     * but leads to warnings with -pedantic, since it is a C++17 feature */\n    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)\n      #if __has_cpp_attribute(fallthrough)\n        #define CYTHON_FALLTHROUGH [[fallthrough]]\n      #endif\n    #endif\n    #ifndef CYTHON_FALLTHROUGH\n      #if __has_cpp_attribute(clang::fallthrough)\n        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]\n      #elif __has_cpp_attribute(gnu::fallthrough)\n        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]\n      #endif\n    #endif\n  #endif\n  #ifndef CYTHON_FALLTHROUGH\n    #if __has_attribute(fallthrough)\n      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))\n    #else\n      #define CYTHON_FALLTHROUGH\n    #endif\n  #endif\n  #if defined(__clang__) && defined(__apple_build_version__)\n    #if __apple_build_version__ < 7000000\n      #undef  CYTHON_FALLTHROUGH\n      #define CYTHON_FALLTHROUGH\n    #endif\n  #endif\n#endif\n#ifndef Py_UNREACHABLE\n  #define Py_UNREACHABLE()  assert(0); abort()\n#endif\n#ifdef __cplusplus\n  template <typename T>\n  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};\n  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)\n#else\n  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)\n#endif\n#if CYTHON_COMPILING_IN_PYPY == 1\n  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x030A0000)\n#else\n  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x03090000)\n#endif\n#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))\n\n/* CInitCode */\n#ifndef CYTHON_INLINE\n  #if defined(__clang__)\n    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))\n  #elif defined(__GNUC__)\n    #define CYTHON_INLINE __inline__\n  #elif defined(_MSC_VER)\n    #define CYTHON_INLINE __inline\n  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n    #define CYTHON_INLINE inline\n  #else\n    #define CYTHON_INLINE\n  #endif\n#endif\n\n/* PythonCompatibility */\n#define __PYX_BUILD_PY_SSIZE_T \"n\"\n#define CYTHON_FORMAT_SSIZE_T \"z\"\n#define __Pyx_BUILTIN_MODULE_NAME \"builtins\"\n#define __Pyx_DefaultClassType PyType_Type\n#if CYTHON_COMPILING_IN_LIMITED_API\n    #ifndef CO_OPTIMIZED\n    static int CO_OPTIMIZED;\n    #endif\n    #ifndef CO_NEWLOCALS\n    static int CO_NEWLOCALS;\n    #endif\n    #ifndef CO_VARARGS\n    static int CO_VARARGS;\n    #endif\n    #ifndef CO_VARKEYWORDS\n    static int CO_VARKEYWORDS;\n    #endif\n    #ifndef CO_ASYNC_GENERATOR\n    static int CO_ASYNC_GENERATOR;\n    #endif\n    #ifndef CO_GENERATOR\n    static int CO_GENERATOR;\n    #endif\n    #ifndef CO_COROUTINE\n    static int CO_COROUTINE;\n    #endif\n#else\n    #ifndef CO_COROUTINE\n      #define CO_COROUTINE 0x80\n    #endif\n    #ifndef CO_ASYNC_GENERATOR\n      #define CO_ASYNC_GENERATOR 0x200\n    #endif\n#endif\nstatic int __Pyx_init_co_variables(void);\n#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)\n  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)\n#else\n  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))\n#endif\n#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)\n  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)\n#else\n  #define __Pyx_Py_Is(x, y) ((x) == (y))\n#endif\n#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)\n  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)\n#else\n  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)\n#endif\n#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)\n  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)\n#else\n  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)\n#endif\n#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)\n  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)\n#else\n  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)\n#endif\n#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))\n#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY\n  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)\n#else\n  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)\n#endif\n#ifndef Py_TPFLAGS_CHECKTYPES\n  #define Py_TPFLAGS_CHECKTYPES 0\n#endif\n#ifndef Py_TPFLAGS_HAVE_INDEX\n  #define Py_TPFLAGS_HAVE_INDEX 0\n#endif\n#ifndef Py_TPFLAGS_HAVE_NEWBUFFER\n  #define Py_TPFLAGS_HAVE_NEWBUFFER 0\n#endif\n#ifndef Py_TPFLAGS_HAVE_FINALIZE\n  #define Py_TPFLAGS_HAVE_FINALIZE 0\n#endif\n#ifndef Py_TPFLAGS_SEQUENCE\n  #define Py_TPFLAGS_SEQUENCE 0\n#endif\n#ifndef Py_TPFLAGS_MAPPING\n  #define Py_TPFLAGS_MAPPING 0\n#endif\n#ifndef Py_TPFLAGS_IMMUTABLETYPE\n  #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)\n#endif\n#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION\n  #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)\n#endif\n#ifndef METH_STACKLESS\n  #define METH_STACKLESS 0\n#endif\n#ifndef METH_FASTCALL\n  #ifndef METH_FASTCALL\n     #define METH_FASTCALL 0x80\n  #endif\n  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);\n  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,\n                                                          Py_ssize_t nargs, PyObject *kwnames);\n#else\n  #if PY_VERSION_HEX >= 0x030d00A4\n  #  define __Pyx_PyCFunctionFast PyCFunctionFast\n  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords\n  #else\n  #  define __Pyx_PyCFunctionFast _PyCFunctionFast\n  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords\n  #endif\n#endif\n#if CYTHON_METH_FASTCALL\n  #define __Pyx_METH_FASTCALL METH_FASTCALL\n  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast\n  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords\n#else\n  #define __Pyx_METH_FASTCALL METH_VARARGS\n  #define __Pyx_PyCFunction_FastCall PyCFunction\n  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords\n#endif\n#if CYTHON_VECTORCALL\n  #define __pyx_vectorcallfunc vectorcallfunc\n  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET\n  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))\n#else\n  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0\n  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))\n#endif\n#if PY_VERSION_HEX >= 0x030900B1\n#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)\n#else\n#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)\n#endif\n#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)\n#if CYTHON_COMPILING_IN_CPYTHON\n#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)\n#elif !CYTHON_COMPILING_IN_LIMITED_API\n#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON\n#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)\nstatic CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {\n    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;\n}\n#endif\nstatic CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;\n#else\n    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;\n#endif\n}\n#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)\n#if PY_VERSION_HEX < 0x03090000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000)\n  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))\n  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);\n#else\n  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)\n  #define __Pyx_PyCMethod  PyCMethod\n#endif\n#ifndef METH_METHOD\n  #define METH_METHOD 0x200\n#endif\n#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)\n  #define PyObject_Malloc(s)   PyMem_Malloc(s)\n  #define PyObject_Free(p)     PyMem_Free(p)\n  #define PyObject_Realloc(p)  PyMem_Realloc(p)\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\n  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)\n#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000\n  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)\n  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))\n#elif CYTHON_COMPILING_IN_GRAAL\n  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)\n  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))\n#else\n  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)\n  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\n  #define __Pyx_PyThreadState_Current PyThreadState_Get()\n#elif !CYTHON_FAST_THREAD_STATE\n  #define __Pyx_PyThreadState_Current PyThreadState_GET()\n#elif PY_VERSION_HEX >= 0x030d00A1\n  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()\n#else\n  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()\n#endif\n#if CYTHON_USE_MODULE_STATE\nstatic CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)\n{\n    void *result;\n    result = PyModule_GetState(op);\n    if (!result)\n        Py_FatalError(\"Couldn't find the module state\");\n    return result;\n}\n#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)\n#else\n#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)\n#endif\n#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)\n#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)\n#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)\n#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)\n#if CYTHON_USE_TYPE_SLOTS\n  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)\n  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)\n  #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)\n  #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)\n#else\n  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))\n  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\\\n    ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\\\n     (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\\\n     __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)\n  #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)\n  #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)\n#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))\n#else\n#define __Pyx_PyDict_NewPresized(n)  PyDict_New()\n#endif\n#define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)\n#define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)\n#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS\n#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)\nstatic CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {\n    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);\n    if (res == NULL) PyErr_Clear();\n    return res;\n}\n#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000\n#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError\n#define __Pyx_PyDict_GetItemStr           PyDict_GetItem\n#else\nstatic CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {\n#if CYTHON_COMPILING_IN_PYPY\n    return PyDict_GetItem(dict, name);\n#else\n    PyDictEntry *ep;\n    PyDictObject *mp = (PyDictObject*) dict;\n    long hash = ((PyStringObject *) name)->ob_shash;\n    assert(hash != -1);\n    ep = (mp->ma_lookup)(mp, name, hash);\n    if (ep == NULL) {\n        return NULL;\n    }\n    return ep->me_value;\n#endif\n}\n#define __Pyx_PyDict_GetItemStr           PyDict_GetItem\n#endif\n#if CYTHON_USE_TYPE_SLOTS\n  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)\n  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)\n#else\n  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))\n  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)\n#endif\n#define __Pyx_PyObject_GetIterNextFunc(iterator)  __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)\n#if CYTHON_USE_TYPE_SPECS\n#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\\\n    PyTypeObject *type = Py_TYPE((PyObject*)obj);\\\n    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\\\n    PyObject_GC_Del(obj);\\\n    Py_DECREF(type);\\\n}\n#else\n#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\n  #define __Pyx_PyUnicode_READY(op)       (0)\n  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)\n  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)\n  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))\n  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)\n  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))\n  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))\n#else\n  #if PY_VERSION_HEX >= 0x030C0000\n    #define __Pyx_PyUnicode_READY(op)       (0)\n  #else\n    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\\\n                                                0 : _PyUnicode_Ready((PyObject *)(op)))\n  #endif\n  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)\n  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)\n  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))\n  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)\n  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)\n  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)\n  #if PY_VERSION_HEX >= 0x030C0000\n    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))\n  #else\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000\n    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))\n    #else\n    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))\n    #endif\n  #endif\n#endif\n#if CYTHON_COMPILING_IN_PYPY\n  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)\n  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)\n#else\n  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)\n  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\\\n      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))\n#endif\n#if CYTHON_COMPILING_IN_PYPY\n  #if !defined(PyUnicode_DecodeUnicodeEscape)\n    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, \"unicode_escape\", errors)\n  #endif\n  #if !defined(PyUnicode_Contains)\n    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)\n  #endif\n  #if !defined(PyByteArray_Check)\n    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)\n  #endif\n  #if !defined(PyObject_Format)\n    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, \"__format__\", \"O\", fmt)\n  #endif\n#endif\n#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  #define __Pyx_PySequence_ListKeepNew(obj)\\\n    (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))\n#elif CYTHON_COMPILING_IN_CPYTHON\n  #define __Pyx_PySequence_ListKeepNew(obj)\\\n    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))\n#else\n  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)\n#endif\n#ifndef PySet_CheckExact\n  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)\n#endif\n#if PY_VERSION_HEX >= 0x030900A4\n  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)\n  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)\n#else\n  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)\n  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)\n#endif\nenum __Pyx_ReferenceSharing {\n  __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check\n  __Pyx_ReferenceSharing_OwnStrongReference,\n  __Pyx_ReferenceSharing_FunctionArgument,\n  __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar\n};\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000\n#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\\\n    (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\\\n      (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\\\n      (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))\n#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API\n#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)\n#else\n#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)\n#endif\n#if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)\n  #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS\n    #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, \"list index out of range\"), (PyObject*)NULL))\n  #else\n    #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)\n  #endif\n#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS\n  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)\n  #else\n    #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))\n  #endif\n#else\n  #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))\n#endif\n#if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !CYTHON_COMPILING_IN_LIMITED_API && CYTHON_ASSUME_SAFE_MACROS\n  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) (__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\\\n    __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))\n#else\n  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) __Pyx_PyList_GetItemRef(o, i)\n#endif\n#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)\n#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\nstatic CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {\n  *result = PyObject_GetItem(dict, key);\n  if (*result == NULL) {\n    if (PyErr_ExceptionMatches(PyExc_KeyError)) {\n      PyErr_Clear();\n      return 0;\n    }\n    return -1;\n  }\n  return 1;\n}\n#else\nstatic CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {\n  *result = PyDict_GetItemWithError(dict, key);\n  if (*result == NULL) {\n    return PyErr_Occurred() ? -1 : 0;\n  }\n  Py_INCREF(*result);\n  return 1;\n}\n#endif\n#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST\n  #define __Pyx_VISIT_CONST(obj)  Py_VISIT(obj)\n#else\n  #define __Pyx_VISIT_CONST(obj)\n#endif\n#if CYTHON_ASSUME_SAFE_MACROS\n  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)\n  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)\n  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))\n  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)\n  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))\n  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)\n#else\n  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)\n  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)\n  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)\n  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)\n  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)\n  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)\n#endif\n#if CYTHON_ASSUME_SAFE_SIZE\n  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)\n  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)\n  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)\n  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)\n  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)\n  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)\n#else\n  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)\n  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)\n  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)\n  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)\n  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)\n  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)\n#endif\n#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)\n  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)\n#endif\n#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t\n#define __Pyx_PyLong_AsHash_t   __Pyx_PyIndex_AsSsize_t\n#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000\n    #define __Pyx_PySendResult PySendResult\n#else\n    typedef enum {\n        PYGEN_RETURN = 0,\n        PYGEN_ERROR = -1,\n        PYGEN_NEXT = 1,\n    } __Pyx_PySendResult;\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3\n  typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);\n#else\n  #define __Pyx_pyiter_sendfunc sendfunc\n#endif\n#if !CYTHON_USE_AM_SEND\n#define __PYX_HAS_PY_AM_SEND 0\n#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000\n#define __PYX_HAS_PY_AM_SEND 1\n#else\n#define __PYX_HAS_PY_AM_SEND 2  // our own backported implementation\n#endif\n#if __PYX_HAS_PY_AM_SEND < 2\n    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods\n#else\n    typedef struct {\n        unaryfunc am_await;\n        unaryfunc am_aiter;\n        unaryfunc am_anext;\n        __Pyx_pyiter_sendfunc am_send;\n    } __Pyx_PyAsyncMethodsStruct;\n    #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))\n#endif\n#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0\n    #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)\n#else\n    #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)\n#endif\n#if PY_VERSION_HEX >= 0x03090000\n#define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get()\n#else\n#define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000\n#ifdef __cplusplus\nextern \"C\"\n#endif\nPyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {\n    int value;\n    PyObject *py_value = PyObject_GetAttrString(inspect, name);\n    if (!py_value) return 0;\n    value = (int) PyLong_AsLong(py_value);\n    Py_DECREF(py_value);\n    *write_to = value;\n    return value != -1 || !PyErr_Occurred();\n}\nstatic int __Pyx_init_co_variables(void) {\n    PyObject *inspect;\n    int result;\n    inspect = PyImport_ImportModule(\"inspect\");\n    result =\n#if !defined(CO_OPTIMIZED)\n        __Pyx_init_co_variable(inspect, \"CO_OPTIMIZED\", &CO_OPTIMIZED) &&\n#endif\n#if !defined(CO_NEWLOCALS)\n        __Pyx_init_co_variable(inspect, \"CO_NEWLOCALS\", &CO_NEWLOCALS) &&\n#endif\n#if !defined(CO_VARARGS)\n        __Pyx_init_co_variable(inspect, \"CO_VARARGS\", &CO_VARARGS) &&\n#endif\n#if !defined(CO_VARKEYWORDS)\n        __Pyx_init_co_variable(inspect, \"CO_VARKEYWORDS\", &CO_VARKEYWORDS) &&\n#endif\n#if !defined(CO_ASYNC_GENERATOR)\n        __Pyx_init_co_variable(inspect, \"CO_ASYNC_GENERATOR\", &CO_ASYNC_GENERATOR) &&\n#endif\n#if !defined(CO_GENERATOR)\n        __Pyx_init_co_variable(inspect, \"CO_GENERATOR\", &CO_GENERATOR) &&\n#endif\n#if !defined(CO_COROUTINE)\n        __Pyx_init_co_variable(inspect, \"CO_COROUTINE\", &CO_COROUTINE) &&\n#endif\n        1;\n    Py_DECREF(inspect);\n    return result ? 0 : -1;\n}\n#else\nstatic int __Pyx_init_co_variables(void) {\n    return 0;  // It's a limited API-only feature\n}\n#endif\n\n/* MathInitCode */\n#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)\n  #ifndef _USE_MATH_DEFINES\n    #define _USE_MATH_DEFINES\n  #endif\n#endif\n#include <math.h>\n#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)\n#define __Pyx_truncl trunc\n#else\n#define __Pyx_truncl truncl\n#endif\n\n#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME\n#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0\n#endif\n#ifndef CYTHON_CLINE_IN_TRACEBACK\n#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME\n#endif\n#if CYTHON_CLINE_IN_TRACEBACK\n#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }\n#else\n#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }\n#endif\n#define __PYX_ERR(f_index, lineno, Ln_error) \\\n    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }\n\n#ifdef CYTHON_EXTERN_C\n    #undef __PYX_EXTERN_C\n    #define __PYX_EXTERN_C CYTHON_EXTERN_C\n#elif defined(__PYX_EXTERN_C)\n    #ifdef _MSC_VER\n    #pragma message (\"Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.\")\n    #else\n    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.\n    #endif\n#else\n  #ifdef __cplusplus\n    #define __PYX_EXTERN_C extern \"C\"\n  #else\n    #define __PYX_EXTERN_C extern\n  #endif\n#endif\n\n#define __PYX_HAVE__talib___ta_lib\n#define __PYX_HAVE_API__talib___ta_lib\n/* Early includes */\n#if defined(WIN32) || defined(MS_WINDOWS)\n#include \"ta_libc.h\"\n#else\n#include \"ta-lib/ta_defs.h\"\n#include \"ta-lib/ta_common.h\"\n#include \"ta-lib/ta_abstract.h\"\n#include \"ta-lib/ta_func.h\"\n#endif\n#include <string.h>\n#include <stdio.h>\n\n    /* Using NumPy API declarations from \"numpy/__init__.cython-30.pxd\" */\n    \n#include \"numpy/arrayobject.h\"\n#include \"numpy/ndarrayobject.h\"\n#include \"numpy/ndarraytypes.h\"\n#include \"numpy/arrayscalars.h\"\n#include \"numpy/ufuncobject.h\"\n#ifdef _OPENMP\n#include <omp.h>\n#endif /* _OPENMP */\n\n#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)\n#define CYTHON_WITHOUT_ASSERTIONS\n#endif\n\n#ifdef CYTHON_FREETHREADING_COMPATIBLE\n#if CYTHON_FREETHREADING_COMPATIBLE\n#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED\n#else\n#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED\n#endif\n#else\n#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED\n#endif\n#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0\n#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0\n#define __PYX_DEFAULT_STRING_ENCODING \"\"\n#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString\n#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize\n#define __Pyx_uchar_cast(c) ((unsigned char)c)\n#define __Pyx_long_cast(x) ((long)x)\n#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\\\n    (sizeof(type) < sizeof(Py_ssize_t))  ||\\\n    (sizeof(type) > sizeof(Py_ssize_t) &&\\\n          likely(v < (type)PY_SSIZE_T_MAX ||\\\n                 v == (type)PY_SSIZE_T_MAX)  &&\\\n          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\\\n                                v == (type)PY_SSIZE_T_MIN)))  ||\\\n    (sizeof(type) == sizeof(Py_ssize_t) &&\\\n          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\\\n                               v == (type)PY_SSIZE_T_MAX)))  )\nstatic CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {\n    return (size_t) i < (size_t) limit;\n}\n#if defined (__cplusplus) && __cplusplus >= 201103L\n    #include <cstdlib>\n    #define __Pyx_sst_abs(value) std::abs(value)\n#elif SIZEOF_INT >= SIZEOF_SIZE_T\n    #define __Pyx_sst_abs(value) abs(value)\n#elif SIZEOF_LONG >= SIZEOF_SIZE_T\n    #define __Pyx_sst_abs(value) labs(value)\n#elif defined (_MSC_VER)\n    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))\n#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n    #define __Pyx_sst_abs(value) llabs(value)\n#elif defined (__GNUC__)\n    #define __Pyx_sst_abs(value) __builtin_llabs(value)\n#else\n    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)\n#endif\nstatic CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);\nstatic CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);\nstatic CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);\nstatic CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);\n#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)\n#define __Pyx_PyBytes_FromString        PyBytes_FromString\n#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize\nstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);\n#if CYTHON_ASSUME_SAFE_MACROS\n    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))\n    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)\n#else\n    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AsString(s))\n    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AsString(s))\n    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AsString(s))\n    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AsString(s))\n    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AsString(s))\n    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AsString(s))\n    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)\n#endif\n#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))\n#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))\n#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))\n#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))\n#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))\n#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)\n#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)\n#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)\n#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)\n#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)\n#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode\nstatic CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)\n    return Py_NewRef(obj);\n#else\n    Py_INCREF(obj);\n    return obj;\n#endif\n}\nstatic CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)\n    return Py_XNewRef(obj);\n#else\n    Py_XINCREF(obj);\n    return obj;\n#endif\n}\nstatic CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);\nstatic CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);\nstatic CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);\nstatic CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);\nstatic CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);\n#define __Pyx_PySequence_Tuple(obj)\\\n    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))\nstatic CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);\nstatic CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);\nstatic CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);\n#if CYTHON_ASSUME_SAFE_MACROS\n#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))\n#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)\n#else\n#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)\n#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)\n#endif\n#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))\n#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))\n#if CYTHON_USE_PYLONG_INTERNALS\n  #if PY_VERSION_HEX >= 0x030C00A7\n  #ifndef _PyLong_SIGN_MASK\n    #define _PyLong_SIGN_MASK 3\n  #endif\n  #ifndef _PyLong_NON_SIZE_BITS\n    #define _PyLong_NON_SIZE_BITS 3\n  #endif\n  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)\n  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)\n  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))\n  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)\n  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)\n  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])\n  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))\n  #define __Pyx_PyLong_SignedDigitCount(x)\\\n        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))\n  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)\n    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)\n    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)\n  #else\n    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))\n    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])\n  #endif\n  typedef Py_ssize_t  __Pyx_compact_pylong;\n  typedef size_t  __Pyx_compact_upylong;\n  #else\n  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)\n  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)\n  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)\n  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)\n  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])\n  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))\n  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)\n  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)\n  #define __Pyx_PyLong_CompactValue(x)\\\n        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))\n  typedef sdigit  __Pyx_compact_pylong;\n  typedef digit  __Pyx_compact_upylong;\n  #endif\n  #if PY_VERSION_HEX >= 0x030C00A5\n  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)\n  #else\n  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)\n  #endif\n#endif\n#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8\n  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)\n#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII\n  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)\n#else\n  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)\n#endif\n\n\n/* Test for GCC > 2.95 */\n#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))\n  #define likely(x)   __builtin_expect(!!(x), 1)\n  #define unlikely(x) __builtin_expect(!!(x), 0)\n#else /* !__GNUC__ or GCC < 2.95 */\n  #define likely(x)   (x)\n  #define unlikely(x) (x)\n#endif /* __GNUC__ */\n/* PretendToInitialize */\n#ifdef __cplusplus\n#if __cplusplus > 201103L\n#include <type_traits>\n#endif\ntemplate <typename T>\nstatic void __Pyx_pretend_to_initialize(T* ptr) {\n#if __cplusplus > 201103L\n    if ((std::is_trivially_default_constructible<T>::value))\n#endif\n        *ptr = T();\n    (void)ptr;\n}\n#else\nstatic CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }\n#endif\n\n\n#if !CYTHON_USE_MODULE_STATE\nstatic PyObject *__pyx_m = NULL;\n#endif\nstatic int __pyx_lineno;\nstatic int __pyx_clineno = 0;\nstatic const char * const __pyx_cfilenm = __FILE__;\nstatic const char *__pyx_filename;\n\n/* Header.proto */\n#if !defined(CYTHON_CCOMPLEX)\n  #if defined(__cplusplus)\n    #define CYTHON_CCOMPLEX 1\n  #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))\n    #define CYTHON_CCOMPLEX 1\n  #else\n    #define CYTHON_CCOMPLEX 0\n  #endif\n#endif\n#if CYTHON_CCOMPLEX\n  #ifdef __cplusplus\n    #include <complex>\n  #else\n    #include <complex.h>\n  #endif\n#endif\n#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)\n  #undef _Complex_I\n  #define _Complex_I 1.0fj\n#endif\n\n/* #### Code section: filename_table ### */\n\nstatic const char* const __pyx_f[] = {\n  \"talib/_ta_lib.pyx\",\n  \"talib/_common.pxi\",\n  \"talib/_abstract.pxi\",\n  \".venv/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd\",\n  \"talib/_func.pxi\",\n  \"talib/_stream.pxi\",\n  \".venv/lib/python3.12/site-packages/Cython/Includes/cpython/type.pxd\",\n};\n/* #### Code section: utility_code_proto_before_types ### */\n/* Atomics.proto (used by UnpackUnboundCMethod) */\n#include <pythread.h>\n#ifndef CYTHON_ATOMICS\n    #define CYTHON_ATOMICS 1\n#endif\n#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS\n#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n#define __pyx_atomic_int_type int\n#define __pyx_nonatomic_int_type int\n#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\\\n                        (__STDC_VERSION__ >= 201112L) &&\\\n                        !defined(__STDC_NO_ATOMICS__))\n    #include <stdatomic.h>\n#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\\\n                    (__cplusplus >= 201103L) ||\\\n                    (defined(_MSC_VER) && _MSC_VER >= 1700)))\n    #include <atomic>\n#endif\n#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\\\n                        (__STDC_VERSION__ >= 201112L) &&\\\n                        !defined(__STDC_NO_ATOMICS__) &&\\\n                       ATOMIC_INT_LOCK_FREE == 2)\n    #undef __pyx_atomic_int_type\n    #define __pyx_atomic_int_type atomic_int\n    #define __pyx_atomic_ptr_type atomic_uintptr_t\n    #define __pyx_nonatomic_ptr_type uintptr_t\n    #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)\n    #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)\n    #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)\n    #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)\n    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)\n    #define __pyx_atomic_load(value) atomic_load(value)\n    #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)\n    #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)\n    #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)\n    #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)\n    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)\n    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)\n        #pragma message (\"Using standard C atomics\")\n    #elif defined(__PYX_DEBUG_ATOMICS)\n        #warning \"Using standard C atomics\"\n    #endif\n#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\\\n                    (__cplusplus >= 201103L) ||\\\n\\\n                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\\\n                    ATOMIC_INT_LOCK_FREE == 2)\n    #undef __pyx_atomic_int_type\n    #define __pyx_atomic_int_type std::atomic_int\n    #define __pyx_atomic_ptr_type std::atomic_uintptr_t\n    #define __pyx_nonatomic_ptr_type uintptr_t\n    #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)\n    #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)\n    #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)\n    #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)\n    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)\n    #define __pyx_atomic_load(value) std::atomic_load(value)\n    #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)\n    #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)\n    #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)\n    #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)\n    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)\n    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)\n        #pragma message (\"Using standard C++ atomics\")\n    #elif defined(__PYX_DEBUG_ATOMICS)\n        #warning \"Using standard C++ atomics\"\n    #endif\n#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\\\n                    (__GNUC_MINOR__ > 1 ||\\\n                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))\n    #define __pyx_atomic_ptr_type void*\n    #define __pyx_nonatomic_ptr_type void*\n    #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)\n    #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)\n    #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)\n    #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)\n    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {\n        __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);\n        int result = old == *expected;\n        *expected = old;\n        return result;\n    }\n    #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)\n    #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)\n    #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)\n    #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)\n    #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)\n    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {\n        __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);\n        int result = old == *expected;\n        *expected = old;\n        return result;\n    }\n    #ifdef __PYX_DEBUG_ATOMICS\n        #warning \"Using GNU atomics\"\n    #endif\n#elif CYTHON_ATOMICS && defined(_MSC_VER)\n    #include <intrin.h>\n    #undef __pyx_atomic_int_type\n    #define __pyx_atomic_int_type long\n    #define __pyx_atomic_ptr_type void*\n    #undef __pyx_nonatomic_int_type\n    #define __pyx_nonatomic_int_type long\n    #define __pyx_nonatomic_ptr_type void*\n    #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)\n    #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)\n    #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)\n    #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)\n    #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)\n    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {\n        __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);\n        int result = old == *expected;\n        *expected = old;\n        return result;\n    }\n    #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)\n    #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)\n    #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value\n    #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)\n    #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)\n    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {\n        __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);\n        int result = old == *expected;\n        *expected = old;\n        return result;\n    }\n    #ifdef __PYX_DEBUG_ATOMICS\n        #pragma message (\"Using MSVC atomics\")\n    #endif\n#else\n    #undef CYTHON_ATOMICS\n    #define CYTHON_ATOMICS 0\n    #ifdef __PYX_DEBUG_ATOMICS\n        #warning \"Not using atomics\"\n    #endif\n#endif\n\n/* CriticalSectionsDefinition.proto (used by CriticalSections) */\n#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n#define __Pyx_PyCriticalSection void*\n#define __Pyx_PyCriticalSection2 void*\n#define __Pyx_PyCriticalSection_End(cs)\n#define __Pyx_PyCriticalSection2_End(cs)\n#else\n#define __Pyx_PyCriticalSection PyCriticalSection\n#define __Pyx_PyCriticalSection2 PyCriticalSection2\n#define __Pyx_PyCriticalSection_End PyCriticalSection_End\n#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End\n#endif\n\n/* CriticalSections.proto (used by ParseKeywordsImpl) */\n#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)\n#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)\n#else\n#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin\n#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin\n#endif\n#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API\n#define __Pyx_BEGIN_CRITICAL_SECTION(o) {\n#define __Pyx_END_CRITICAL_SECTION() }\n#else\n#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION\n#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION\n#endif\n\n/* IncludeStructmemberH.proto (used by FixUpExtensionType) */\n#include <structmember.h>\n\n/* #### Code section: numeric_typedefs ### */\n\ntypedef npy_int8 __pyx_t_5numpy_int8_t;\n\ntypedef npy_int16 __pyx_t_5numpy_int16_t;\n\ntypedef npy_int32 __pyx_t_5numpy_int32_t;\n\ntypedef npy_int64 __pyx_t_5numpy_int64_t;\n\ntypedef npy_uint8 __pyx_t_5numpy_uint8_t;\n\ntypedef npy_uint16 __pyx_t_5numpy_uint16_t;\n\ntypedef npy_uint32 __pyx_t_5numpy_uint32_t;\n\ntypedef npy_uint64 __pyx_t_5numpy_uint64_t;\n\ntypedef npy_float32 __pyx_t_5numpy_float32_t;\n\ntypedef npy_float64 __pyx_t_5numpy_float64_t;\n\ntypedef npy_longlong __pyx_t_5numpy_longlong_t;\n\ntypedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;\n\ntypedef npy_intp __pyx_t_5numpy_intp_t;\n\ntypedef npy_uintp __pyx_t_5numpy_uintp_t;\n\ntypedef npy_double __pyx_t_5numpy_float_t;\n\ntypedef npy_double __pyx_t_5numpy_double_t;\n\ntypedef npy_longdouble __pyx_t_5numpy_longdouble_t;\n/* #### Code section: complex_type_declarations ### */\n/* Declarations.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    typedef ::std::complex< float > __pyx_t_float_complex;\n  #else\n    typedef float _Complex __pyx_t_float_complex;\n  #endif\n#else\n    typedef struct { float real, imag; } __pyx_t_float_complex;\n#endif\nstatic CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);\n\n/* Declarations.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    typedef ::std::complex< double > __pyx_t_double_complex;\n  #else\n    typedef double _Complex __pyx_t_double_complex;\n  #endif\n#else\n    typedef struct { double real, imag; } __pyx_t_double_complex;\n#endif\nstatic CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);\n\n/* Declarations.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    typedef ::std::complex< long double > __pyx_t_long_double_complex;\n  #else\n    typedef long double _Complex __pyx_t_long_double_complex;\n  #endif\n#else\n    typedef struct { long double real, imag; } __pyx_t_long_double_complex;\n#endif\nstatic CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);\n\n/* #### Code section: type_declarations ### */\n\n/*--- Type declarations ---*/\n\ntypedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *);\n\ntypedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *);\n/* #### Code section: utility_code_proto ### */\n\n/* --- Runtime support code (head) --- */\n/* Refnanny.proto */\n#ifndef CYTHON_REFNANNY\n  #define CYTHON_REFNANNY 0\n#endif\n#if CYTHON_REFNANNY\n  typedef struct {\n    void (*INCREF)(void*, PyObject*, Py_ssize_t);\n    void (*DECREF)(void*, PyObject*, Py_ssize_t);\n    void (*GOTREF)(void*, PyObject*, Py_ssize_t);\n    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);\n    void* (*SetupContext)(const char*, Py_ssize_t, const char*);\n    void (*FinishContext)(void**);\n  } __Pyx_RefNannyAPIStruct;\n  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;\n  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);\n  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;\n  #define __Pyx_RefNannySetupContext(name, acquire_gil)\\\n          if (acquire_gil) {\\\n              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\\\n              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\\\n              PyGILState_Release(__pyx_gilstate_save);\\\n          } else {\\\n              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\\\n          }\n  #define __Pyx_RefNannyFinishContextNogil() {\\\n              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\\\n              __Pyx_RefNannyFinishContext();\\\n              PyGILState_Release(__pyx_gilstate_save);\\\n          }\n  #define __Pyx_RefNannyFinishContextNogil() {\\\n              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\\\n              __Pyx_RefNannyFinishContext();\\\n              PyGILState_Release(__pyx_gilstate_save);\\\n          }\n  #define __Pyx_RefNannyFinishContext()\\\n          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)\n  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))\n  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))\n  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))\n  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))\n  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)\n  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)\n  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)\n  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)\n#else\n  #define __Pyx_RefNannyDeclarations\n  #define __Pyx_RefNannySetupContext(name, acquire_gil)\n  #define __Pyx_RefNannyFinishContextNogil()\n  #define __Pyx_RefNannyFinishContext()\n  #define __Pyx_INCREF(r) Py_INCREF(r)\n  #define __Pyx_DECREF(r) Py_DECREF(r)\n  #define __Pyx_GOTREF(r)\n  #define __Pyx_GIVEREF(r)\n  #define __Pyx_XINCREF(r) Py_XINCREF(r)\n  #define __Pyx_XDECREF(r) Py_XDECREF(r)\n  #define __Pyx_XGOTREF(r)\n  #define __Pyx_XGIVEREF(r)\n#endif\n#define __Pyx_Py_XDECREF_SET(r, v) do {\\\n        PyObject *tmp = (PyObject *) r;\\\n        r = v; Py_XDECREF(tmp);\\\n    } while (0)\n#define __Pyx_XDECREF_SET(r, v) do {\\\n        PyObject *tmp = (PyObject *) r;\\\n        r = v; __Pyx_XDECREF(tmp);\\\n    } while (0)\n#define __Pyx_DECREF_SET(r, v) do {\\\n        PyObject *tmp = (PyObject *) r;\\\n        r = v; __Pyx_DECREF(tmp);\\\n    } while (0)\n#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)\n#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)\n\n/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_FAST_THREAD_STATE\n#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)\nstatic CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);\n#else\n#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)\n#endif\n\n/* PyThreadStateGet.proto (used by PyErrFetchRestore) */\n#if CYTHON_FAST_THREAD_STATE\n#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;\n#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;\n#if PY_VERSION_HEX >= 0x030C00A6\n#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)\n#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)\n#else\n#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)\n#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)\n#endif\n#else\n#define __Pyx_PyThreadState_declare\n#define __Pyx_PyThreadState_assign\n#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)\n#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()\n#endif\n\n/* PyErrFetchRestore.proto (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_FAST_THREAD_STATE\n#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)\n#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)\n#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)\n#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)\n#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)\nstatic CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);\nstatic CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6\n#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))\n#else\n#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)\n#endif\n#else\n#define __Pyx_PyErr_Clear() PyErr_Clear()\n#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)\n#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)\n#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)\n#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)\n#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)\n#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)\n#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)\n#endif\n\n/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);\n#else\n#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)\n#endif\n\n/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);\n\n/* GetBuiltinName.proto */\nstatic PyObject *__Pyx_GetBuiltinName(PyObject *name);\n\n/* GetTopmostException.proto (used by SaveResetException) */\n#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE\nstatic _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);\n#endif\n\n/* SaveResetException.proto */\n#if CYTHON_FAST_THREAD_STATE\n#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)\nstatic CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);\n#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)\nstatic CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);\n#else\n#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)\n#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)\n#endif\n\n/* GetException.proto */\n#if CYTHON_FAST_THREAD_STATE\n#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)\nstatic int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);\n#else\nstatic int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);\n#endif\n\n/* PyImportError_Check.proto */\n#define __Pyx_PyExc_ImportError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ImportError)\n\n/* PyObjectCall.proto (used by PyObjectFastCall) */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);\n#else\n#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)\n#endif\n\n/* PyObjectCallMethO.proto (used by PyObjectFastCall) */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);\n#endif\n\n/* PyObjectFastCall.proto */\n#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs);\n\n/* RaiseException.export */\nstatic void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);\n\n/* PyUnicode_Unicode.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj);\n\n/* BuildPyUnicode.proto (used by COrdinalToPyUnicode) */\nstatic PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,\n                                                int prepend_sign, char padding_char);\n\n/* COrdinalToPyUnicode.proto (used by CIntToPyUnicode) */\nstatic CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value);\nstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t width, char padding_char);\n\n/* GCCDiagnostics.proto (used by CIntToPyUnicode) */\n#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))\n#define __Pyx_HAS_GCC_DIAGNOSTIC\n#endif\n\n/* IncludeStdlibH.proto (used by CIntToPyUnicode) */\n#include <stdlib.h>\n\n/* IncludeStringH.proto (used by CIntToPyUnicode) */\n#include <string.h>\n\n/* CIntToPyUnicode.proto */\n#define __Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char) (\\\n    ((format_char) == ('c')) ?\\\n        __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char) :\\\n        __Pyx____Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char)\\\n    )\nstatic CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char);\nstatic CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char, char format_char);\n\n/* JoinPyUnicode.export */\nstatic PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,\n                                      Py_UCS4 max_char);\n\n/* TupleAndListFromArray.proto (used by fastcall) */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL\nstatic CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);\n#endif\n\n/* BytesEquals.proto (used by UnicodeEquals) */\nstatic CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);\n\n/* UnicodeEquals.proto (used by fastcall) */\nstatic CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);\n\n/* fastcall.proto */\n#if CYTHON_AVOID_BORROWED_REFS\n    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)\n#elif CYTHON_ASSUME_SAFE_MACROS\n    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))\n#else\n    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))\n#endif\n#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)\n#define __Pyx_KwValues_VARARGS(args, nargs) NULL\n#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)\n#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)\n#if CYTHON_METH_FASTCALL\n    #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])\n    #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)\n    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))\n    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API\n    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);\n  #else\n    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)\n  #endif\n#else\n    #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS\n    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS\n    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS\n    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS\n    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS\n#endif\n#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)\n#if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)\n#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)\n#else\n#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)\n#endif\n\n/* py_dict_items.proto (used by OwnedDictNext) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);\n\n/* CallCFunction.proto (used by CallUnboundCMethod0) */\n#define __Pyx_CallCFunction(cfunc, self, args)\\\n    ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)\n#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\\\n    ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)\n#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\\\n    ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)\n#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\\\n    ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)\n\n/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);\n\n/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */\ntypedef struct {\n    PyObject *type;\n    PyObject **method_name;\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS\n    __pyx_atomic_int_type initialized;\n#endif\n    PyCFunction func;\n    PyObject *method;\n    int flag;\n} __Pyx_CachedCFunction;\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\nstatic CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {\n#if !CYTHON_ATOMICS\n    return 1;\n#else\n    __pyx_nonatomic_int_type expected = 0;\n    if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {\n        return 0;\n    }\n    return expected;\n#endif\n}\nstatic CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {\n#if CYTHON_ATOMICS\n    __pyx_atomic_store(&cfunc->initialized, 2);\n#endif\n}\n#else\n#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2\n#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)\n#endif\n\n/* CallUnboundCMethod0.proto */\nCYTHON_UNUSED\nstatic PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);\n#else\n#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)\n#endif\n\n/* py_dict_values.proto (used by OwnedDictNext) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);\n\n/* OwnedDictNext.proto (used by ParseKeywordsImpl) */\n#if CYTHON_AVOID_BORROWED_REFS\nstatic int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);\n#else\nCYTHON_INLINE\nstatic int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);\n#endif\n\n/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */\nstatic void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);\n\n/* ParseKeywordsImpl.export */\nstatic int __Pyx_ParseKeywordsTuple(\n    PyObject *kwds,\n    PyObject * const *kwvalues,\n    PyObject ** const argnames[],\n    PyObject *kwds2,\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs\n);\nstatic int __Pyx_ParseKeywordDictToDict(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject *kwds2,\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    const char* function_name\n);\nstatic int __Pyx_ParseKeywordDict(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs\n);\n\n/* CallUnboundCMethod2.proto */\nCYTHON_UNUSED\nstatic PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);\n#else\n#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)\n#endif\n\n/* ParseKeywords.proto */\nstatic CYTHON_INLINE int __Pyx_ParseKeywords(\n    PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],\n    PyObject *kwds2, PyObject *values[],\n    Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs\n);\n\n/* RaiseArgTupleInvalid.proto */\nstatic void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,\n    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);\n\n/* ArgTypeTestFunc.export */\nstatic int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);\n\n/* ArgTypeTest.proto */\n#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\\\n    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\\\n        __Pyx__ArgTypeTest(obj, type, name, exact))\n\n/* PyDictVersioning.proto (used by GetModuleGlobalName) */\n#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS\n#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)\n#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)\n#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\\\n    (version_var) = __PYX_GET_DICT_VERSION(dict);\\\n    (cache_var) = (value);\n#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\\\n    static PY_UINT64_T __pyx_dict_version = 0;\\\n    static PyObject *__pyx_dict_cached_value = NULL;\\\n    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\\\n        (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\\\n    } else {\\\n        (VAR) = __pyx_dict_cached_value = (LOOKUP);\\\n        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\\\n    }\\\n}\nstatic CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);\nstatic CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);\nstatic CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);\n#else\n#define __PYX_GET_DICT_VERSION(dict)  (0)\n#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\n#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);\n#endif\n\n/* GetModuleGlobalName.proto */\n#if CYTHON_USE_DICT_VERSIONS\n#define __Pyx_GetModuleGlobalName(var, name)  do {\\\n    static PY_UINT64_T __pyx_dict_version = 0;\\\n    static PyObject *__pyx_dict_cached_value = NULL;\\\n    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\\\n        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\\\n        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\\\n} while(0)\n#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\\\n    PY_UINT64_T __pyx_dict_version;\\\n    PyObject *__pyx_dict_cached_value;\\\n    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\\\n} while(0)\nstatic PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);\n#else\n#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)\n#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)\nstatic CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);\n#endif\n\n/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000\n#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)\n#else\n#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)\n#endif\n\n/* PyObjectSetAttrStr.proto */\n#if CYTHON_USE_TYPE_SLOTS\n#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)\nstatic CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);\n#else\n#define __Pyx_PyObject_DelAttrStr(o,n)   __Pyx_PyObject_DelAttr(o,n)\n#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)\n#endif\n\n/* GetItemInt.proto */\n#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\\\n    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\\\n    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck, unsafe_shared) :\\\n    (is_list ? (PyErr_SetString(PyExc_IndexError, \"list index out of range\"), (PyObject*)NULL) :\\\n               __Pyx_GetItemInt_Generic(o, to_py_func(i))))\n#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\\\n    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\\\n    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\\\n    (PyErr_SetString(PyExc_IndexError, \"list index out of range\"), (PyObject*)NULL))\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,\n                                                              int wraparound, int boundscheck, int unsafe_shared);\n#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\\\n    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\\\n    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\\\n    (PyErr_SetString(PyExc_IndexError, \"tuple index out of range\"), (PyObject*)NULL))\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,\n                                                              int wraparound, int boundscheck, int unsafe_shared);\nstatic PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,\n                                                     int is_list, int wraparound, int boundscheck, int unsafe_shared);\n\n/* ObjectGetItem.proto */\n#if CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);\n#else\n#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)\n#endif\n\n/* PyObjectFastCallMethod.proto */\n#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000\n#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL)\n#else\nstatic PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf);\n#endif\n\n/* HasAttr.proto */\n#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)\n#else\nstatic CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);\n#endif\n\n/* PyRange_Check.proto */\n#if CYTHON_COMPILING_IN_PYPY && !defined(PyRange_Check)\n  #define PyRange_Check(obj)  __Pyx_TypeCheck((obj), &PyRange_Type)\n#endif\n\n/* DictGetItem.proto */\n#if !CYTHON_COMPILING_IN_PYPY\nstatic PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);\n#define __Pyx_PyObject_Dict_GetItem(obj, name)\\\n    (likely(PyDict_CheckExact(obj)) ?\\\n     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))\n#else\n#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)\n#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)\n#endif\n\n/* RaiseTooManyValuesToUnpack.proto */\nstatic CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);\n\n/* RaiseNeedMoreValuesToUnpack.proto */\nstatic CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);\n\n/* IterFinish.proto */\nstatic CYTHON_INLINE int __Pyx_IterFinish(void);\n\n/* UnpackItemEndCheck.proto */\nstatic int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);\n\n/* PySequenceContains.proto */\nstatic CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {\n    int result = PySequence_Contains(seq, item);\n    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));\n}\n\n/* ListAppend.proto */\n#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS\nstatic CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {\n    PyListObject* L = (PyListObject*) list;\n    Py_ssize_t len = Py_SIZE(list);\n    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {\n        Py_INCREF(x);\n        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000\n        L->ob_item[len] = x;\n        #else\n        PyList_SET_ITEM(list, len, x);\n        #endif\n        __Pyx_SET_SIZE(list, len + 1);\n        return 0;\n    }\n    return PyList_Append(list, x);\n}\n#else\n#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)\n#endif\n\n/* PyObjectCallNoArg.proto (used by PyObjectCallMethod0) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);\n\n/* PyObjectGetMethod.proto (used by PyObjectCallMethod0) */\n#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))\nstatic int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);\n#endif\n\n/* PyObjectCallMethod0.proto (used by dict_iter) */\nstatic PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);\n\n/* RaiseNoneIterError.proto (used by UnpackTupleError) */\nstatic CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);\n\n/* UnpackTupleError.proto (used by UnpackTuple2) */\nstatic void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);\n\n/* UnpackTuple2.proto (used by dict_iter) */\nstatic CYTHON_INLINE int __Pyx_unpack_tuple2(\n    PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple);\nstatic CYTHON_INLINE int __Pyx_unpack_tuple2_exact(\n    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);\nstatic int __Pyx_unpack_tuple2_generic(\n    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);\n\n/* dict_iter.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,\n                                                   Py_ssize_t* p_orig_length, int* p_is_dict);\nstatic CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,\n                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);\n\n/* PyLongBinop.proto */\n#if !CYTHON_COMPILING_IN_PYPY\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);\n#else\n#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\\\n    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))\n#endif\n\n/* PyObjectVectorCallKwBuilder.proto */\nCYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);\n#if CYTHON_VECTORCALL\n#if PY_VERSION_HEX >= 0x03090000\n#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall\n#else\n#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall\n#endif\n#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n)\nstatic int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);\nstatic int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n);\n#else\n#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict\n#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n)\n#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value)\n#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value)\n#endif\n\n/* ListCompAppend.proto */\n#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS\nstatic CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {\n    PyListObject* L = (PyListObject*) list;\n    Py_ssize_t len = Py_SIZE(list);\n    if (likely(L->allocated > len)) {\n        Py_INCREF(x);\n        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000\n        L->ob_item[len] = x;\n        #else\n        PyList_SET_ITEM(list, len, x);\n        #endif\n        __Pyx_SET_SIZE(list, len + 1);\n        return 0;\n    }\n    return PyList_Append(list, x);\n}\n#else\n#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)\n#endif\n\n/* PyIndexError_Check.proto */\n#define __Pyx_PyExc_IndexError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_IndexError)\n\n/* CIntToPyUnicode.proto */\n#define __Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char) (\\\n    ((format_char) == ('c')) ?\\\n        __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char) :\\\n        __Pyx____Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char)\\\n    )\nstatic CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char);\nstatic CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char);\n\n/* PyTypeError_Check.proto */\n#define __Pyx_PyExc_TypeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_TypeError)\n\n/* SliceTupleAndList.proto */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);\nstatic CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);\n#else\n#define __Pyx_PyList_GetSlice(seq, start, stop)   PySequence_GetSlice(seq, start, stop)\n#define __Pyx_PyTuple_GetSlice(seq, start, stop)  PySequence_GetSlice(seq, start, stop)\n#endif\n\n/* PyObjectFormatAndDecref.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);\n\n/* PyObject_Unicode.proto */\n#define __Pyx_PyObject_Unicode(obj)\\\n    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))\n\n/* py_dict_keys.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d);\n\n/* pyint_simplify.proto */\nstatic CYTHON_INLINE int __Pyx_PyInt_FromNumber(PyObject **number_var, const char *argname, int accept_none);\n\n/* SliceObject.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(\n        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,\n        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,\n        int has_cstart, int has_cstop, int wraparound);\n\n/* SetItemInt.proto */\n#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\\\n    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\\\n    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck, unsafe_shared) :\\\n    (is_list ? (PyErr_SetString(PyExc_IndexError, \"list assignment index out of range\"), -1) :\\\n               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))\nstatic int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);\nstatic CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,\n                                               int is_list, int wraparound, int boundscheck, int unsafe_shared);\n\n/* TypeImport.proto */\n#ifndef __PYX_HAVE_RT_ImportType_proto_3_2_4\n#define __PYX_HAVE_RT_ImportType_proto_3_2_4\n#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L\n#include <stdalign.h>\n#endif\n#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L\n#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) alignof(s)\n#else\n#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) sizeof(void*)\n#endif\nenum __Pyx_ImportType_CheckSize_3_2_4 {\n   __Pyx_ImportType_CheckSize_Error_3_2_4 = 0,\n   __Pyx_ImportType_CheckSize_Warn_3_2_4 = 1,\n   __Pyx_ImportType_CheckSize_Ignore_3_2_4 = 2\n};\nstatic PyTypeObject *__Pyx_ImportType_3_2_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size);\n#endif\n\n/* dict_setdefault.proto (used by FetchCommonType) */\nstatic CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);\n\n/* LimitedApiGetTypeDict.proto (used by SetItemOnTypeDict) */\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);\n#endif\n\n/* SetItemOnTypeDict.proto (used by FixUpExtensionType) */\nstatic int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);\n#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)\n\n/* FixUpExtensionType.proto (used by FetchCommonType) */\nstatic CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);\n\n/* AddModuleRef.proto (used by FetchSharedCythonModule) */\n#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING ) ||\\\n     __PYX_LIMITED_VERSION_HEX < 0x030d0000)\n  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);\n#else\n  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)\n#endif\n\n/* FetchSharedCythonModule.proto (used by FetchCommonType) */\nstatic PyObject *__Pyx_FetchSharedCythonABIModule(void);\n\n/* FetchCommonType.proto (used by CommonTypesMetaclass) */\nstatic PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);\n\n/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */\nstatic int __pyx_CommonTypesMetaclass_init(PyObject *module);\n#define __Pyx_CommonTypesMetaclass_USED\n\n/* CallTypeTraverse.proto (used by CythonFunctionShared) */\n#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)\n#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0\n#else\nstatic int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);\n#endif\n\n/* PyMethodNew.proto (used by CythonFunctionShared) */\nstatic PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);\n\n/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */\n#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL\nstatic CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);\n#endif\n\n/* CythonFunctionShared.proto (used by CythonFunction) */\n#define __Pyx_CyFunction_USED\n#define __Pyx_CYFUNCTION_STATICMETHOD  0x01\n#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02\n#define __Pyx_CYFUNCTION_CCLASS        0x04\n#define __Pyx_CYFUNCTION_COROUTINE     0x08\n#define __Pyx_CyFunction_GetClosure(f)\\\n    (((__pyx_CyFunctionObject *) (f))->func_closure)\n#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API\n  #define __Pyx_CyFunction_GetClassObj(f)\\\n      (((__pyx_CyFunctionObject *) (f))->func_classobj)\n#else\n  #define __Pyx_CyFunction_GetClassObj(f)\\\n      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)\n#endif\n#define __Pyx_CyFunction_SetClassObj(f, classobj)\\\n    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))\n#define __Pyx_CyFunction_Defaults(type, f)\\\n    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))\n#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\\\n    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)\ntypedef struct {\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject_HEAD\n    PyObject *func;\n#elif PY_VERSION_HEX < 0x030900B1\n    PyCFunctionObject func;\n#else\n    PyCMethodObject func;\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL\n    __pyx_vectorcallfunc func_vectorcall;\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *func_weakreflist;\n#endif\n#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *func_dict;\n#endif\n    PyObject *func_name;\n    PyObject *func_qualname;\n    PyObject *func_doc;\n    PyObject *func_globals;\n    PyObject *func_code;\n    PyObject *func_closure;\n#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *func_classobj;\n#endif\n    PyObject *defaults;\n    int flags;\n    PyObject *defaults_tuple;\n    PyObject *defaults_kwdict;\n    PyObject *(*defaults_getter)(PyObject *);\n    PyObject *func_annotations;\n    PyObject *func_is_coroutine;\n} __pyx_CyFunctionObject;\n#undef __Pyx_CyOrPyCFunction_Check\n#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)\n#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)\n#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)\nstatic CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));\n#undef __Pyx_IsSameCFunction\n#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)\nstatic PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,\n                                      int flags, PyObject* qualname,\n                                      PyObject *closure,\n                                      PyObject *module, PyObject *globals,\n                                      PyObject* code);\nstatic CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);\nstatic CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,\n                                                         PyTypeObject *defaults_type);\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,\n                                                            PyObject *tuple);\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,\n                                                             PyObject *dict);\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,\n                                                              PyObject *dict);\nstatic int __pyx_CyFunction_init(PyObject *module);\n#if CYTHON_METH_FASTCALL\nstatic PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);\nstatic PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);\nstatic PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);\nstatic PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);\n#if CYTHON_COMPILING_IN_LIMITED_API\n#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)\n#else\n#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)\n#endif\n#endif\n\n/* CythonFunction.proto */\nstatic PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,\n                                      int flags, PyObject* qualname,\n                                      PyObject *closure,\n                                      PyObject *module, PyObject *globals,\n                                      PyObject* code);\n\n/* Py3UpdateBases.proto */\nstatic PyObject* __Pyx_PEP560_update_bases(PyObject *bases);\n\n/* CalculateMetaclass.proto */\nstatic PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);\n\n/* SetNameInClass.proto */\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000\n#define __Pyx_SetNameInClass(ns, name, value)\\\n    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))\n#elif CYTHON_COMPILING_IN_CPYTHON\n#define __Pyx_SetNameInClass(ns, name, value)\\\n    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))\n#else\n#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)\n#endif\n\n/* PyObjectCall2Args.proto (used by Py3ClassCreate) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);\n\n/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */\n#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS\n#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)\n#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)\nstatic CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);\n#else\n#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)\n#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)\n#endif\n\n/* Py3ClassCreate.proto */\nstatic PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,\n                                           PyObject *mkw, PyObject *modname, PyObject *doc);\nstatic PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,\n                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);\n\n/* ListPack.proto */\nstatic PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...);\n\n/* ImportImpl.export */\nstatic PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);\n\n/* Import.proto */\nstatic CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);\n\n/* ImportFrom.proto */\nstatic PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);\n\n/* PyObjectCallMethod1.proto (used by append) */\nstatic PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);\n\n/* append.proto */\nstatic CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);\n\n/* PyModuleNotFoundError_Check.proto */\n#define __Pyx_PyExc_ModuleNotFoundError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ModuleNotFoundError)\n\n/* PyNameError_Check.proto */\n#define __Pyx_PyExc_NameError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_NameError)\n\n/* CLineInTraceback.proto (used by AddTraceback) */\n#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME\nstatic int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);\n#else\n#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)\n#endif\n\n/* CodeObjectCache.proto (used by AddTraceback) */\n#if CYTHON_COMPILING_IN_LIMITED_API\ntypedef PyObject __Pyx_CachedCodeObjectType;\n#else\ntypedef PyCodeObject __Pyx_CachedCodeObjectType;\n#endif\ntypedef struct {\n    __Pyx_CachedCodeObjectType* code_object;\n    int code_line;\n} __Pyx_CodeObjectCacheEntry;\nstruct __Pyx_CodeObjectCache {\n    int count;\n    int max_count;\n    __Pyx_CodeObjectCacheEntry* entries;\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    __pyx_atomic_int_type accessor_count;\n  #endif\n};\nstatic int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);\nstatic __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);\nstatic void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);\n\n/* AddTraceback.proto */\nstatic void __Pyx_AddTraceback(const char *funcname, int c_line,\n                               int py_line, const char *filename);\n\n/* RealImag.proto */\n#if CYTHON_CCOMPLEX\n  #ifdef __cplusplus\n    #define __Pyx_CREAL(z) ((z).real())\n    #define __Pyx_CIMAG(z) ((z).imag())\n  #else\n    #define __Pyx_CREAL(z) (__real__(z))\n    #define __Pyx_CIMAG(z) (__imag__(z))\n  #endif\n#else\n    #define __Pyx_CREAL(z) ((z).real)\n    #define __Pyx_CIMAG(z) ((z).imag)\n#endif\n#if defined(__cplusplus) && CYTHON_CCOMPLEX\\\n        && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)\n    #define __Pyx_SET_CREAL(z,x) ((z).real(x))\n    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))\n#else\n    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)\n    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)\n#endif\n\n/* Arithmetic.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n    #define __Pyx_c_eq_float(a, b)   ((a)==(b))\n    #define __Pyx_c_sum_float(a, b)  ((a)+(b))\n    #define __Pyx_c_diff_float(a, b) ((a)-(b))\n    #define __Pyx_c_prod_float(a, b) ((a)*(b))\n    #define __Pyx_c_quot_float(a, b) ((a)/(b))\n    #define __Pyx_c_neg_float(a)     (-(a))\n  #ifdef __cplusplus\n    #define __Pyx_c_is_zero_float(z) ((z)==(float)0)\n    #define __Pyx_c_conj_float(z)    (::std::conj(z))\n    #if 1\n        #define __Pyx_c_abs_float(z)     (::std::abs(z))\n        #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))\n    #endif\n  #else\n    #define __Pyx_c_is_zero_float(z) ((z)==0)\n    #define __Pyx_c_conj_float(z)    (conjf(z))\n    #if 1\n        #define __Pyx_c_abs_float(z)     (cabsf(z))\n        #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))\n    #endif\n #endif\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);\n    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);\n    #if 1\n        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);\n        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);\n    #endif\n#endif\n\n/* Arithmetic.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n    #define __Pyx_c_eq_double(a, b)   ((a)==(b))\n    #define __Pyx_c_sum_double(a, b)  ((a)+(b))\n    #define __Pyx_c_diff_double(a, b) ((a)-(b))\n    #define __Pyx_c_prod_double(a, b) ((a)*(b))\n    #define __Pyx_c_quot_double(a, b) ((a)/(b))\n    #define __Pyx_c_neg_double(a)     (-(a))\n  #ifdef __cplusplus\n    #define __Pyx_c_is_zero_double(z) ((z)==(double)0)\n    #define __Pyx_c_conj_double(z)    (::std::conj(z))\n    #if 1\n        #define __Pyx_c_abs_double(z)     (::std::abs(z))\n        #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))\n    #endif\n  #else\n    #define __Pyx_c_is_zero_double(z) ((z)==0)\n    #define __Pyx_c_conj_double(z)    (conj(z))\n    #if 1\n        #define __Pyx_c_abs_double(z)     (cabs(z))\n        #define __Pyx_c_pow_double(a, b)  (cpow(a, b))\n    #endif\n #endif\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);\n    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);\n    #if 1\n        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);\n        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);\n    #endif\n#endif\n\n/* Arithmetic.proto */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n    #define __Pyx_c_eq_long__double(a, b)   ((a)==(b))\n    #define __Pyx_c_sum_long__double(a, b)  ((a)+(b))\n    #define __Pyx_c_diff_long__double(a, b) ((a)-(b))\n    #define __Pyx_c_prod_long__double(a, b) ((a)*(b))\n    #define __Pyx_c_quot_long__double(a, b) ((a)/(b))\n    #define __Pyx_c_neg_long__double(a)     (-(a))\n  #ifdef __cplusplus\n    #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)\n    #define __Pyx_c_conj_long__double(z)    (::std::conj(z))\n    #if 1\n        #define __Pyx_c_abs_long__double(z)     (::std::abs(z))\n        #define __Pyx_c_pow_long__double(a, b)  (::std::pow(a, b))\n    #endif\n  #else\n    #define __Pyx_c_is_zero_long__double(z) ((z)==0)\n    #define __Pyx_c_conj_long__double(z)    (conjl(z))\n    #if 1\n        #define __Pyx_c_abs_long__double(z)     (cabsl(z))\n        #define __Pyx_c_pow_long__double(a, b)  (cpowl(a, b))\n    #endif\n #endif\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);\n    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);\n    #if 1\n        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);\n        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);\n    #endif\n#endif\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE TA_FuncUnstId __Pyx_PyLong_As_TA_FuncUnstId(PyObject *);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE TA_Compatibility __Pyx_PyLong_As_TA_Compatibility(PyObject *);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE TA_CandleSettingType __Pyx_PyLong_As_TA_CandleSettingType(PyObject *);\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE TA_RangeType __Pyx_PyLong_As_TA_RangeType(PyObject *);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInputParameterType value);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncFlags(TA_FuncFlags value);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_InputFlags(TA_InputFlags value);\n\n/* CIntToPy.proto */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OutputFlags(TA_OutputFlags value);\n\n/* FormatTypeName.proto */\n#if CYTHON_COMPILING_IN_LIMITED_API\ntypedef PyObject *__Pyx_TypeName;\n#define __Pyx_FMT_TYPENAME \"%U\"\n#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)\n#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n#define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName\n#else\nstatic __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);\n#endif\n#else  // !LIMITED_API\ntypedef const char *__Pyx_TypeName;\n#define __Pyx_FMT_TYPENAME \"%.200s\"\n#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)\n#define __Pyx_DECREF_TypeName(obj)\n#endif\n\n/* CIntFromPy.proto */\nstatic CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);\n\n/* FastTypeChecks.proto */\n#if CYTHON_COMPILING_IN_CPYTHON\n#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)\n#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)\nstatic CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);\nstatic CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);\nstatic CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);\nstatic CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);\n#else\n#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)\n#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))\n#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)\nstatic CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {\n    return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);\n}\n#endif\n#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)\n#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)\n#ifdef PyExceptionInstance_Check\n  #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj)\n#else\n  #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException)\n#endif\n\n/* GetRuntimeVersion.proto */\n#if __PYX_LIMITED_VERSION_HEX < 0x030b0000\nstatic unsigned long __Pyx_cached_runtime_version = 0;\nstatic void __Pyx_init_runtime_version(void);\n#else\n#define __Pyx_init_runtime_version()\n#endif\nstatic unsigned long __Pyx_get_runtime_version(void);\n\n/* CheckBinaryVersion.proto */\nstatic int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);\n\n/* DecompressString.proto */\nstatic PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);\n\n/* MultiPhaseInitModuleState.proto */\n#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE\nstatic PyObject *__Pyx_State_FindModule(void*);\nstatic int __Pyx_State_AddModule(PyObject* module, void*);\nstatic int __Pyx_State_RemoveModule(void*);\n#elif CYTHON_USE_MODULE_STATE\n#define __Pyx_State_FindModule PyState_FindModule\n#define __Pyx_State_AddModule PyState_AddModule\n#define __Pyx_State_RemoveModule PyState_RemoveModule\n#endif\n\n/* #### Code section: module_declarations ### */\n/* CythonABIVersion.proto */\n#if CYTHON_COMPILING_IN_LIMITED_API\n    #if CYTHON_METH_FASTCALL\n        #define __PYX_FASTCALL_ABI_SUFFIX  \"_fastcall\"\n    #else\n        #define __PYX_FASTCALL_ABI_SUFFIX\n    #endif\n    #define __PYX_LIMITED_ABI_SUFFIX \"limited\" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX\n#else\n    #define __PYX_LIMITED_ABI_SUFFIX\n#endif\n#if __PYX_HAS_PY_AM_SEND == 1\n    #define __PYX_AM_SEND_ABI_SUFFIX\n#elif __PYX_HAS_PY_AM_SEND == 2\n    #define __PYX_AM_SEND_ABI_SUFFIX \"amsendbackport\"\n#else\n    #define __PYX_AM_SEND_ABI_SUFFIX \"noamsend\"\n#endif\n#ifndef __PYX_MONITORING_ABI_SUFFIX\n    #define __PYX_MONITORING_ABI_SUFFIX\n#endif\n#if CYTHON_USE_TP_FINALIZE\n    #define __PYX_TP_FINALIZE_ABI_SUFFIX\n#else\n    #define __PYX_TP_FINALIZE_ABI_SUFFIX \"nofinalize\"\n#endif\n#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)\n    #define __PYX_FREELISTS_ABI_SUFFIX\n#else\n    #define __PYX_FREELISTS_ABI_SUFFIX \"nofreelists\"\n#endif\n#define CYTHON_ABI  __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX\n#define __PYX_ABI_MODULE_NAME \"_cython_\" CYTHON_ABI\n#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME \".\"\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/\nstatic CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/\n\n/* Module declarations from \"libc.string\" */\n\n/* Module declarations from \"libc.stdio\" */\n\n/* Module declarations from \"__builtin__\" */\n\n/* Module declarations from \"cpython.type\" */\n\n/* Module declarations from \"cpython\" */\n\n/* Module declarations from \"cpython.object\" */\n\n/* Module declarations from \"cpython.ref\" */\n\n/* Module declarations from \"numpy\" */\n\n/* Module declarations from \"numpy\" */\nstatic CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/\n\n/* Module declarations from \"talib._ta_lib\" */\nstatic double __pyx_v_5talib_7_ta_lib_NaN;\nstatic PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *, TA_RetCode, int __pyx_skip_dispatch); /*proto*/\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *); /*proto*/\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *, PyArrayObject *); /*proto*/\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *, PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp, double *); /*proto*/\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp, double *, double *); /*proto*/\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp, double *, double *, double *); /*proto*/\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp, double *, double *, double *, double *); /*proto*/\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp, int); /*proto*/\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp, int); /*proto*/\nstatic TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *); /*proto*/\nstatic TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *); /*proto*/\nstatic int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *); /*proto*/\nstatic int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *, int, int); /*proto*/\nstatic int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *, int, double); /*proto*/\nstatic int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *); /*proto*/\n/* #### Code section: typeinfo ### */\n/* #### Code section: before_global_var ### */\n#define __Pyx_MODULE_NAME \"talib._ta_lib\"\nextern int __pyx_module_is_main_talib___ta_lib;\nint __pyx_module_is_main_talib___ta_lib = 0;\n\n/* Implementation of \"talib._ta_lib\" */\n/* #### Code section: global_var ### */\nstatic PyObject *__pyx_builtin_object;\nstatic PyObject *__pyx_builtin_enumerate;\nstatic PyObject *__pyx_builtin_property;\nstatic PyObject *__pyx_builtin_min;\nstatic PyObject *__pyx_builtin_max;\n/* #### Code section: string_decls ### */\n/* #### Code section: decls ### */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_32APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_270OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_352__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_362_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_372stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_378stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_396stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_398stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_678stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_682stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_684stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */\n/* #### Code section: late_includes ### */\n/* #### Code section: module_state ### */\n/* SmallCodeConfig */\n#ifndef CYTHON_SMALL_CODE\n#if defined(__clang__)\n    #define CYTHON_SMALL_CODE\n#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))\n    #define CYTHON_SMALL_CODE __attribute__((cold))\n#else\n    #define CYTHON_SMALL_CODE\n#endif\n#endif\n\ntypedef struct {\n  PyObject *__pyx_d;\n  PyObject *__pyx_b;\n  PyObject *__pyx_cython_runtime;\n  PyObject *__pyx_empty_tuple;\n  PyObject *__pyx_empty_bytes;\n  PyObject *__pyx_empty_unicode;\n  PyTypeObject *__pyx_ptype_7cpython_4type_type;\n  PyTypeObject *__pyx_ptype_5numpy_dtype;\n  PyTypeObject *__pyx_ptype_5numpy_flatiter;\n  PyTypeObject *__pyx_ptype_5numpy_broadcast;\n  PyTypeObject *__pyx_ptype_5numpy_ndarray;\n  PyTypeObject *__pyx_ptype_5numpy_generic;\n  PyTypeObject *__pyx_ptype_5numpy_number;\n  PyTypeObject *__pyx_ptype_5numpy_integer;\n  PyTypeObject *__pyx_ptype_5numpy_signedinteger;\n  PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;\n  PyTypeObject *__pyx_ptype_5numpy_inexact;\n  PyTypeObject *__pyx_ptype_5numpy_floating;\n  PyTypeObject *__pyx_ptype_5numpy_complexfloating;\n  PyTypeObject *__pyx_ptype_5numpy_flexible;\n  PyTypeObject *__pyx_ptype_5numpy_character;\n  PyTypeObject *__pyx_ptype_5numpy_ufunc;\n  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;\n  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys;\n  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;\n  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;\n  PyObject *__pyx_tuple[10];\n  PyObject *__pyx_codeobj_tab[369];\n  PyObject *__pyx_string_tab[1153];\n  PyObject *__pyx_number_tab[22];\n/* #### Code section: module_state_contents ### */\n/* CommonTypesMetaclass.module_state_decls */\nPyTypeObject *__pyx_CommonTypesMetaclassType;\n\n/* CachedMethodType.module_state_decls */\n#if CYTHON_COMPILING_IN_LIMITED_API\nPyObject *__Pyx_CachedMethodType;\n#endif\n\n/* CythonFunctionShared.module_state_decls */\nPyTypeObject *__pyx_CyFunctionType;\n\n/* CodeObjectCache.module_state_decls */\nstruct __Pyx_CodeObjectCache __pyx_code_cache;\n\n/* #### Code section: module_state_end ### */\n} __pyx_mstatetype;\n\n#if CYTHON_USE_MODULE_STATE\n#ifdef __cplusplus\nnamespace {\nextern struct PyModuleDef __pyx_moduledef;\n} /* anonymous namespace */\n#else\nstatic struct PyModuleDef __pyx_moduledef;\n#endif\n\n#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))\n\n#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))\n#else\nstatic __pyx_mstatetype __pyx_mstate_global_static =\n#ifdef __cplusplus\n    {};\n#else\n    {0};\n#endif\nstatic __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;\n#endif\n/* #### Code section: constant_name_defines ### */\n#define __pyx_kp_u_ __pyx_string_tab[0]\n#define __pyx_kp_u_3 __pyx_string_tab[1]\n#define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[2]\n#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[3]\n#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[4]\n#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[5]\n#define __pyx_kp_u_Dashed_Line __pyx_string_tab[6]\n#define __pyx_kp_u_Dotted_Line __pyx_string_tab[7]\n#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[8]\n#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[9]\n#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[10]\n#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[11]\n#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[12]\n#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[13]\n#define __pyx_kp_u_Inputs __pyx_string_tab[14]\n#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[15]\n#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[16]\n#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[17]\n#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[18]\n#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[19]\n#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[20]\n#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[21]\n#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[22]\n#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[23]\n#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[24]\n#define __pyx_kp_u_None __pyx_string_tab[25]\n#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[26]\n#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[27]\n#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[28]\n#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[29]\n#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[30]\n#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[31]\n#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[32]\n#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[33]\n#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[34]\n#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[35]\n#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[36]\n#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[37]\n#define __pyx_kp_u_Outputs __pyx_string_tab[38]\n#define __pyx_kp_u_Parameters __pyx_string_tab[39]\n#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[40]\n#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[41]\n#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[42]\n#define __pyx_kp_u_This_is_a_pythonic_wrapper_arou __pyx_string_tab[43]\n#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[44]\n#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[45]\n#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[46]\n#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[47]\n#define __pyx_kp_u_Unknown_Error __pyx_string_tab[48]\n#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[49]\n#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[50]\n#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[51]\n#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[52]\n#define __pyx_kp_u__10 __pyx_string_tab[53]\n#define __pyx_kp_u__11 __pyx_string_tab[54]\n#define __pyx_kp_u__12 __pyx_string_tab[55]\n#define __pyx_kp_u__13 __pyx_string_tab[56]\n#define __pyx_kp_u__14 __pyx_string_tab[57]\n#define __pyx_kp_u__15 __pyx_string_tab[58]\n#define __pyx_kp_u__2 __pyx_string_tab[59]\n#define __pyx_kp_u__3 __pyx_string_tab[60]\n#define __pyx_kp_u__4 __pyx_string_tab[61]\n#define __pyx_kp_u__5 __pyx_string_tab[62]\n#define __pyx_kp_u__6 __pyx_string_tab[63]\n#define __pyx_kp_u__7 __pyx_string_tab[64]\n#define __pyx_kp_u__8 __pyx_string_tab[65]\n#define __pyx_kp_u__9 __pyx_string_tab[66]\n#define __pyx_kp_u_add_note __pyx_string_tab[67]\n#define __pyx_kp_u_any_ndarray __pyx_string_tab[68]\n#define __pyx_kp_u_display_name_s_group_s __pyx_string_tab[69]\n#define __pyx_kp_u_expected __pyx_string_tab[70]\n#define __pyx_kp_u_function_failed_with_error_code __pyx_string_tab[71]\n#define __pyx_kp_u_got __pyx_string_tab[72]\n#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[73]\n#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[74]\n#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[75]\n#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[76]\n#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[77]\n#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[78]\n#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[79]\n#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[80]\n#define __pyx_kp_u_s_2 __pyx_string_tab[81]\n#define __pyx_kp_u_s_3 __pyx_string_tab[82]\n#define __pyx_kp_u_s_4 __pyx_string_tab[83]\n#define __pyx_kp_u_stream__s __pyx_string_tab[84]\n#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[85]\n#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[86]\n#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[87]\n#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[88]\n#define __pyx_kp_u_talib_collections __pyx_string_tab[89]\n#define __pyx_kp_u_talib_math __pyx_string_tab[90]\n#define __pyx_kp_u_talib_numpy __pyx_string_tab[91]\n#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[92]\n#define __pyx_kp_u_talib_pandas __pyx_string_tab[93]\n#define __pyx_kp_u_talib_polars __pyx_string_tab[94]\n#define __pyx_kp_u_talib_sys __pyx_string_tab[95]\n#define __pyx_kp_u_talib_threading __pyx_string_tab[96]\n#define __pyx_n_u_ACCBANDS __pyx_string_tab[97]\n#define __pyx_n_u_ACOS __pyx_string_tab[98]\n#define __pyx_n_u_AD __pyx_string_tab[99]\n#define __pyx_n_u_ADD __pyx_string_tab[100]\n#define __pyx_n_u_ADOSC __pyx_string_tab[101]\n#define __pyx_n_u_ADX __pyx_string_tab[102]\n#define __pyx_n_u_ADXR __pyx_string_tab[103]\n#define __pyx_n_u_ALL __pyx_string_tab[104]\n#define __pyx_n_u_APO __pyx_string_tab[105]\n#define __pyx_n_u_AROON __pyx_string_tab[106]\n#define __pyx_n_u_AROONOSC __pyx_string_tab[107]\n#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[108]\n#define __pyx_n_u_ASIN __pyx_string_tab[109]\n#define __pyx_n_u_ATAN __pyx_string_tab[110]\n#define __pyx_n_u_ATR __pyx_string_tab[111]\n#define __pyx_n_u_AVGDEV __pyx_string_tab[112]\n#define __pyx_n_u_AVGPRICE __pyx_string_tab[113]\n#define __pyx_n_u_AllCandleSettings __pyx_string_tab[114]\n#define __pyx_n_u_BBANDS __pyx_string_tab[115]\n#define __pyx_n_u_BETA __pyx_string_tab[116]\n#define __pyx_n_u_BOP __pyx_string_tab[117]\n#define __pyx_n_u_BodyDoji __pyx_string_tab[118]\n#define __pyx_n_u_BodyLong __pyx_string_tab[119]\n#define __pyx_n_u_BodyShort __pyx_string_tab[120]\n#define __pyx_n_u_BodyVeryLong __pyx_string_tab[121]\n#define __pyx_n_u_CCI __pyx_string_tab[122]\n#define __pyx_n_u_CDL2CROWS __pyx_string_tab[123]\n#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[124]\n#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[125]\n#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[126]\n#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[127]\n#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[128]\n#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[129]\n#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[130]\n#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[131]\n#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[132]\n#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[133]\n#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[134]\n#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[135]\n#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[136]\n#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[137]\n#define __pyx_n_u_CDLDOJI __pyx_string_tab[138]\n#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[139]\n#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[140]\n#define __pyx_n_u_CDLENGULFING __pyx_string_tab[141]\n#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[142]\n#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[143]\n#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[144]\n#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[145]\n#define __pyx_n_u_CDLHAMMER __pyx_string_tab[146]\n#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[147]\n#define __pyx_n_u_CDLHARAMI __pyx_string_tab[148]\n#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[149]\n#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[150]\n#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[151]\n#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[152]\n#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[153]\n#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[154]\n#define __pyx_n_u_CDLINNECK __pyx_string_tab[155]\n#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[156]\n#define __pyx_n_u_CDLKICKING __pyx_string_tab[157]\n#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[158]\n#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[159]\n#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[160]\n#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[161]\n#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[162]\n#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[163]\n#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[164]\n#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[165]\n#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[166]\n#define __pyx_n_u_CDLONNECK __pyx_string_tab[167]\n#define __pyx_n_u_CDLPIERCING __pyx_string_tab[168]\n#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[169]\n#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[170]\n#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[171]\n#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[172]\n#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[173]\n#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[174]\n#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[175]\n#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[176]\n#define __pyx_n_u_CDLTAKURI __pyx_string_tab[177]\n#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[178]\n#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[179]\n#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[180]\n#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[181]\n#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[182]\n#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[183]\n#define __pyx_n_u_CEIL __pyx_string_tab[184]\n#define __pyx_n_u_CMO __pyx_string_tab[185]\n#define __pyx_n_u_CORREL __pyx_string_tab[186]\n#define __pyx_n_u_COS __pyx_string_tab[187]\n#define __pyx_n_u_COSH __pyx_string_tab[188]\n#define __pyx_n_u_CandleSettingType __pyx_string_tab[189]\n#define __pyx_n_u_DEMA __pyx_string_tab[190]\n#define __pyx_n_u_DIV __pyx_string_tab[191]\n#define __pyx_n_u_DX __pyx_string_tab[192]\n#define __pyx_n_u_DataFrame __pyx_string_tab[193]\n#define __pyx_n_u_Dot __pyx_string_tab[194]\n#define __pyx_n_u_EMA __pyx_string_tab[195]\n#define __pyx_n_u_EXP __pyx_string_tab[196]\n#define __pyx_n_u_Equal __pyx_string_tab[197]\n#define __pyx_n_u_FLOOR __pyx_string_tab[198]\n#define __pyx_n_u_Far __pyx_string_tab[199]\n#define __pyx_n_u_Function __pyx_string_tab[200]\n#define __pyx_n_u_Function___call __pyx_string_tab[201]\n#define __pyx_n_u_Function___call_function __pyx_string_tab[202]\n#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[203]\n#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[204]\n#define __pyx_n_u_Function___init __pyx_string_tab[205]\n#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[206]\n#define __pyx_n_u_Function___local __pyx_string_tab[207]\n#define __pyx_n_u_Function___repr __pyx_string_tab[208]\n#define __pyx_n_u_Function___str __pyx_string_tab[209]\n#define __pyx_n_u_Function___unicode __pyx_string_tab[210]\n#define __pyx_n_u_Function__call_function __pyx_string_tab[211]\n#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[212]\n#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[213]\n#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[214]\n#define __pyx_n_u_Function__local __pyx_string_tab[215]\n#define __pyx_n_u_Function__localdata __pyx_string_tab[216]\n#define __pyx_n_u_Function__name __pyx_string_tab[217]\n#define __pyx_n_u_Function__namestr __pyx_string_tab[218]\n#define __pyx_n_u_Function_function_flags __pyx_string_tab[219]\n#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[220]\n#define __pyx_n_u_Function_get_input_names __pyx_string_tab[221]\n#define __pyx_n_u_Function_get_parameters __pyx_string_tab[222]\n#define __pyx_n_u_Function_info __pyx_string_tab[223]\n#define __pyx_n_u_Function_lookback __pyx_string_tab[224]\n#define __pyx_n_u_Function_output_flags __pyx_string_tab[225]\n#define __pyx_n_u_Function_output_names __pyx_string_tab[226]\n#define __pyx_n_u_Function_outputs __pyx_string_tab[227]\n#define __pyx_n_u_Function_run __pyx_string_tab[228]\n#define __pyx_n_u_Function_set_function_args __pyx_string_tab[229]\n#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[230]\n#define __pyx_n_u_Function_set_input_names __pyx_string_tab[231]\n#define __pyx_n_u_Function_set_parameters __pyx_string_tab[232]\n#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[233]\n#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[234]\n#define __pyx_n_u_HT_PHASOR __pyx_string_tab[235]\n#define __pyx_n_u_HT_SINE __pyx_string_tab[236]\n#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[237]\n#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[238]\n#define __pyx_n_u_HighLow __pyx_string_tab[239]\n#define __pyx_n_u_Histogram __pyx_string_tab[240]\n#define __pyx_n_u_IMI __pyx_string_tab[241]\n#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[242]\n#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[243]\n#define __pyx_n_u_KAMA __pyx_string_tab[244]\n#define __pyx_n_u_LINEARREG __pyx_string_tab[245]\n#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[246]\n#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[247]\n#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[248]\n#define __pyx_n_u_LN __pyx_string_tab[249]\n#define __pyx_n_u_LOG10 __pyx_string_tab[250]\n#define __pyx_n_u_Line __pyx_string_tab[251]\n#define __pyx_n_u_MA __pyx_string_tab[252]\n#define __pyx_n_u_MACD __pyx_string_tab[253]\n#define __pyx_n_u_MACDEXT __pyx_string_tab[254]\n#define __pyx_n_u_MACDFIX __pyx_string_tab[255]\n#define __pyx_n_u_MAMA __pyx_string_tab[256]\n#define __pyx_n_u_MAVP __pyx_string_tab[257]\n#define __pyx_n_u_MAX __pyx_string_tab[258]\n#define __pyx_n_u_MAXINDEX __pyx_string_tab[259]\n#define __pyx_n_u_MA_Type __pyx_string_tab[260]\n#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[261]\n#define __pyx_n_u_MA_Type___init __pyx_string_tab[262]\n#define __pyx_n_u_MEDPRICE __pyx_string_tab[263]\n#define __pyx_n_u_MFI __pyx_string_tab[264]\n#define __pyx_n_u_MIDPOINT __pyx_string_tab[265]\n#define __pyx_n_u_MIDPRICE __pyx_string_tab[266]\n#define __pyx_n_u_MIN __pyx_string_tab[267]\n#define __pyx_n_u_MININDEX __pyx_string_tab[268]\n#define __pyx_n_u_MINMAX __pyx_string_tab[269]\n#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[270]\n#define __pyx_n_u_MINUS_DI __pyx_string_tab[271]\n#define __pyx_n_u_MINUS_DM __pyx_string_tab[272]\n#define __pyx_n_u_MOM __pyx_string_tab[273]\n#define __pyx_n_u_MULT __pyx_string_tab[274]\n#define __pyx_n_u_NATR __pyx_string_tab[275]\n#define __pyx_n_u_NONE __pyx_string_tab[276]\n#define __pyx_n_u_Near __pyx_string_tab[277]\n#define __pyx_n_u_OBV __pyx_string_tab[278]\n#define __pyx_n_u_OrderedDict __pyx_string_tab[279]\n#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[280]\n#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[281]\n#define __pyx_n_u_PLUS_DI __pyx_string_tab[282]\n#define __pyx_n_u_PLUS_DM __pyx_string_tab[283]\n#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[284]\n#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[285]\n#define __pyx_n_u_PPO __pyx_string_tab[286]\n#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[287]\n#define __pyx_n_u_ROC __pyx_string_tab[288]\n#define __pyx_n_u_ROCP __pyx_string_tab[289]\n#define __pyx_n_u_ROCR __pyx_string_tab[290]\n#define __pyx_n_u_ROCR100 __pyx_string_tab[291]\n#define __pyx_n_u_RSI __pyx_string_tab[292]\n#define __pyx_n_u_RangeType __pyx_string_tab[293]\n#define __pyx_n_u_RealBody __pyx_string_tab[294]\n#define __pyx_n_u_SAR __pyx_string_tab[295]\n#define __pyx_n_u_SAREXT __pyx_string_tab[296]\n#define __pyx_n_u_SIN __pyx_string_tab[297]\n#define __pyx_n_u_SINH __pyx_string_tab[298]\n#define __pyx_n_u_SMA __pyx_string_tab[299]\n#define __pyx_n_u_SQRT __pyx_string_tab[300]\n#define __pyx_n_u_STDDEV __pyx_string_tab[301]\n#define __pyx_n_u_STOCH __pyx_string_tab[302]\n#define __pyx_n_u_STOCHF __pyx_string_tab[303]\n#define __pyx_n_u_STOCHRSI __pyx_string_tab[304]\n#define __pyx_n_u_SUB __pyx_string_tab[305]\n#define __pyx_n_u_SUM __pyx_string_tab[306]\n#define __pyx_n_u_Series __pyx_string_tab[307]\n#define __pyx_n_u_ShadowLong __pyx_string_tab[308]\n#define __pyx_n_u_ShadowShort __pyx_string_tab[309]\n#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[310]\n#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[311]\n#define __pyx_n_u_Shadows __pyx_string_tab[312]\n#define __pyx_n_u_T3 __pyx_string_tab[313]\n#define __pyx_n_u_TAN __pyx_string_tab[314]\n#define __pyx_n_u_TANH __pyx_string_tab[315]\n#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[316]\n#define __pyx_n_u_TA_ACOS __pyx_string_tab[317]\n#define __pyx_n_u_TA_AD __pyx_string_tab[318]\n#define __pyx_n_u_TA_ADD __pyx_string_tab[319]\n#define __pyx_n_u_TA_ADOSC __pyx_string_tab[320]\n#define __pyx_n_u_TA_ADX __pyx_string_tab[321]\n#define __pyx_n_u_TA_ADXR __pyx_string_tab[322]\n#define __pyx_n_u_TA_APO __pyx_string_tab[323]\n#define __pyx_n_u_TA_AROON __pyx_string_tab[324]\n#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[325]\n#define __pyx_n_u_TA_ASIN __pyx_string_tab[326]\n#define __pyx_n_u_TA_ATAN __pyx_string_tab[327]\n#define __pyx_n_u_TA_ATR __pyx_string_tab[328]\n#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[329]\n#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[330]\n#define __pyx_n_u_TA_BBANDS __pyx_string_tab[331]\n#define __pyx_n_u_TA_BETA __pyx_string_tab[332]\n#define __pyx_n_u_TA_BOP __pyx_string_tab[333]\n#define __pyx_n_u_TA_CCI __pyx_string_tab[334]\n#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[335]\n#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[336]\n#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[337]\n#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[338]\n#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[339]\n#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[340]\n#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[341]\n#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[342]\n#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[343]\n#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[344]\n#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[345]\n#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[346]\n#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[347]\n#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[348]\n#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[349]\n#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[350]\n#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[351]\n#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[352]\n#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[353]\n#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[354]\n#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[355]\n#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[356]\n#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[357]\n#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[358]\n#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[359]\n#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[360]\n#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[361]\n#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[362]\n#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[363]\n#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[364]\n#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[365]\n#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[366]\n#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[367]\n#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[368]\n#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[369]\n#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[370]\n#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[371]\n#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[372]\n#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[373]\n#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[374]\n#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[375]\n#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[376]\n#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[377]\n#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[378]\n#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[379]\n#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[380]\n#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[381]\n#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[382]\n#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[383]\n#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[384]\n#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[385]\n#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[386]\n#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[387]\n#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[388]\n#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[389]\n#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[390]\n#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[391]\n#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[392]\n#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[393]\n#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[394]\n#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[395]\n#define __pyx_n_u_TA_CEIL __pyx_string_tab[396]\n#define __pyx_n_u_TA_CMO __pyx_string_tab[397]\n#define __pyx_n_u_TA_CORREL __pyx_string_tab[398]\n#define __pyx_n_u_TA_COS __pyx_string_tab[399]\n#define __pyx_n_u_TA_COSH __pyx_string_tab[400]\n#define __pyx_n_u_TA_DEMA __pyx_string_tab[401]\n#define __pyx_n_u_TA_DIV __pyx_string_tab[402]\n#define __pyx_n_u_TA_DX __pyx_string_tab[403]\n#define __pyx_n_u_TA_EMA __pyx_string_tab[404]\n#define __pyx_n_u_TA_EXP __pyx_string_tab[405]\n#define __pyx_n_u_TA_FLOOR __pyx_string_tab[406]\n#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[407]\n#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[408]\n#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[409]\n#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[410]\n#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[411]\n#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[412]\n#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[413]\n#define __pyx_n_u_TA_GetLookback __pyx_string_tab[414]\n#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[415]\n#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[416]\n#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[417]\n#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[418]\n#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[419]\n#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[420]\n#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[421]\n#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[422]\n#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[423]\n#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[424]\n#define __pyx_n_u_TA_IMI __pyx_string_tab[425]\n#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[426]\n#define __pyx_n_u_TA_Initialize __pyx_string_tab[427]\n#define __pyx_n_u_TA_KAMA __pyx_string_tab[428]\n#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[429]\n#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[430]\n#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[431]\n#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[432]\n#define __pyx_n_u_TA_LN __pyx_string_tab[433]\n#define __pyx_n_u_TA_LOG10 __pyx_string_tab[434]\n#define __pyx_n_u_TA_MA __pyx_string_tab[435]\n#define __pyx_n_u_TA_MACD __pyx_string_tab[436]\n#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[437]\n#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[438]\n#define __pyx_n_u_TA_MAMA __pyx_string_tab[439]\n#define __pyx_n_u_TA_MAVP __pyx_string_tab[440]\n#define __pyx_n_u_TA_MAX __pyx_string_tab[441]\n#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[442]\n#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[443]\n#define __pyx_n_u_TA_MFI __pyx_string_tab[444]\n#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[445]\n#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[446]\n#define __pyx_n_u_TA_MIN __pyx_string_tab[447]\n#define __pyx_n_u_TA_MININDEX __pyx_string_tab[448]\n#define __pyx_n_u_TA_MINMAX __pyx_string_tab[449]\n#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[450]\n#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[451]\n#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[452]\n#define __pyx_n_u_TA_MOM __pyx_string_tab[453]\n#define __pyx_n_u_TA_MULT __pyx_string_tab[454]\n#define __pyx_n_u_TA_NATR __pyx_string_tab[455]\n#define __pyx_n_u_TA_OBV __pyx_string_tab[456]\n#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[457]\n#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[458]\n#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[459]\n#define __pyx_n_u_TA_PPO __pyx_string_tab[460]\n#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[461]\n#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[462]\n#define __pyx_n_u_TA_ROC __pyx_string_tab[463]\n#define __pyx_n_u_TA_ROCP __pyx_string_tab[464]\n#define __pyx_n_u_TA_ROCR __pyx_string_tab[465]\n#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[466]\n#define __pyx_n_u_TA_RSI __pyx_string_tab[467]\n#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[468]\n#define __pyx_n_u_TA_SAR __pyx_string_tab[469]\n#define __pyx_n_u_TA_SAREXT __pyx_string_tab[470]\n#define __pyx_n_u_TA_SIN __pyx_string_tab[471]\n#define __pyx_n_u_TA_SINH __pyx_string_tab[472]\n#define __pyx_n_u_TA_SMA __pyx_string_tab[473]\n#define __pyx_n_u_TA_SQRT __pyx_string_tab[474]\n#define __pyx_n_u_TA_STDDEV __pyx_string_tab[475]\n#define __pyx_n_u_TA_STOCH __pyx_string_tab[476]\n#define __pyx_n_u_TA_STOCHF __pyx_string_tab[477]\n#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[478]\n#define __pyx_n_u_TA_SUB __pyx_string_tab[479]\n#define __pyx_n_u_TA_SUM __pyx_string_tab[480]\n#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[481]\n#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[482]\n#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[483]\n#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[484]\n#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[485]\n#define __pyx_n_u_TA_Shutdown __pyx_string_tab[486]\n#define __pyx_n_u_TA_T3 __pyx_string_tab[487]\n#define __pyx_n_u_TA_TAN __pyx_string_tab[488]\n#define __pyx_n_u_TA_TANH __pyx_string_tab[489]\n#define __pyx_n_u_TA_TEMA __pyx_string_tab[490]\n#define __pyx_n_u_TA_TRANGE __pyx_string_tab[491]\n#define __pyx_n_u_TA_TRIMA __pyx_string_tab[492]\n#define __pyx_n_u_TA_TRIX __pyx_string_tab[493]\n#define __pyx_n_u_TA_TSF __pyx_string_tab[494]\n#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[495]\n#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[496]\n#define __pyx_n_u_TA_VAR __pyx_string_tab[497]\n#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[498]\n#define __pyx_n_u_TA_WILLR __pyx_string_tab[499]\n#define __pyx_n_u_TA_WMA __pyx_string_tab[500]\n#define __pyx_n_u_TEMA __pyx_string_tab[501]\n#define __pyx_n_u_TRANGE __pyx_string_tab[502]\n#define __pyx_n_u_TRIMA __pyx_string_tab[503]\n#define __pyx_n_u_TRIX __pyx_string_tab[504]\n#define __pyx_n_u_TSF __pyx_string_tab[505]\n#define __pyx_n_u_TYPPRICE __pyx_string_tab[506]\n#define __pyx_n_u_ULTOSC __pyx_string_tab[507]\n#define __pyx_n_u_VAR __pyx_string_tab[508]\n#define __pyx_n_u_WCLPRICE __pyx_string_tab[509]\n#define __pyx_n_u_WILLR __pyx_string_tab[510]\n#define __pyx_n_u_WMA __pyx_string_tab[511]\n#define __pyx_n_u_acceleration __pyx_string_tab[512]\n#define __pyx_n_u_accelerationinitlong __pyx_string_tab[513]\n#define __pyx_n_u_accelerationinitshort __pyx_string_tab[514]\n#define __pyx_n_u_accelerationlong __pyx_string_tab[515]\n#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[516]\n#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[517]\n#define __pyx_n_u_accelerationshort __pyx_string_tab[518]\n#define __pyx_n_u_all __pyx_string_tab[519]\n#define __pyx_n_u_append __pyx_string_tab[520]\n#define __pyx_n_u_arg __pyx_string_tab[521]\n#define __pyx_n_u_args __pyx_string_tab[522]\n#define __pyx_n_u_ascii __pyx_string_tab[523]\n#define __pyx_n_u_astype __pyx_string_tab[524]\n#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[525]\n#define __pyx_n_u_avgperiod __pyx_string_tab[526]\n#define __pyx_n_u_b __pyx_string_tab[527]\n#define __pyx_n_u_begidx __pyx_string_tab[528]\n#define __pyx_n_u_bytes2str __pyx_string_tab[529]\n#define __pyx_n_u_call __pyx_string_tab[530]\n#define __pyx_n_u_call_function __pyx_string_tab[531]\n#define __pyx_n_u_check_opt_input_value __pyx_string_tab[532]\n#define __pyx_n_u_class_getitem __pyx_string_tab[533]\n#define __pyx_n_u_cline_in_traceback __pyx_string_tab[534]\n#define __pyx_n_u_clone __pyx_string_tab[535]\n#define __pyx_n_u_close __pyx_string_tab[536]\n#define __pyx_n_u_close_data __pyx_string_tab[537]\n#define __pyx_n_u_collections __pyx_string_tab[538]\n#define __pyx_n_u_column_stack __pyx_string_tab[539]\n#define __pyx_n_u_columns __pyx_string_tab[540]\n#define __pyx_n_u_copy __pyx_string_tab[541]\n#define __pyx_n_u_d __pyx_string_tab[542]\n#define __pyx_n_u_decode __pyx_string_tab[543]\n#define __pyx_n_u_default_value __pyx_string_tab[544]\n#define __pyx_n_u_defaults __pyx_string_tab[545]\n#define __pyx_n_u_display_name __pyx_string_tab[546]\n#define __pyx_n_u_doc __pyx_string_tab[547]\n#define __pyx_n_u_docs __pyx_string_tab[548]\n#define __pyx_n_u_documentation __pyx_string_tab[549]\n#define __pyx_n_u_empty __pyx_string_tab[550]\n#define __pyx_n_u_endidx __pyx_string_tab[551]\n#define __pyx_n_u_enumerate __pyx_string_tab[552]\n#define __pyx_n_u_factor __pyx_string_tab[553]\n#define __pyx_n_u_fastd_matype __pyx_string_tab[554]\n#define __pyx_n_u_fastd_period __pyx_string_tab[555]\n#define __pyx_n_u_fastk_period __pyx_string_tab[556]\n#define __pyx_n_u_fastlimit __pyx_string_tab[557]\n#define __pyx_n_u_fastmatype __pyx_string_tab[558]\n#define __pyx_n_u_fastperiod __pyx_string_tab[559]\n#define __pyx_n_u_flag __pyx_string_tab[560]\n#define __pyx_n_u_flags __pyx_string_tab[561]\n#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[562]\n#define __pyx_n_u_func __pyx_string_tab[563]\n#define __pyx_n_u_func_args __pyx_string_tab[564]\n#define __pyx_n_u_func_info __pyx_string_tab[565]\n#define __pyx_n_u_func_line __pyx_string_tab[566]\n#define __pyx_n_u_func_object __pyx_string_tab[567]\n#define __pyx_n_u_function_flags __pyx_string_tab[568]\n#define __pyx_n_u_function_name __pyx_string_tab[569]\n#define __pyx_n_u_functions __pyx_string_tab[570]\n#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[571]\n#define __pyx_n_u_get_flags __pyx_string_tab[572]\n#define __pyx_n_u_get_input_arrays __pyx_string_tab[573]\n#define __pyx_n_u_get_input_names __pyx_string_tab[574]\n#define __pyx_n_u_get_opt_input_value __pyx_string_tab[575]\n#define __pyx_n_u_get_parameters __pyx_string_tab[576]\n#define __pyx_n_u_getitem __pyx_string_tab[577]\n#define __pyx_n_u_group __pyx_string_tab[578]\n#define __pyx_n_u_groups __pyx_string_tab[579]\n#define __pyx_n_u_help __pyx_string_tab[580]\n#define __pyx_n_u_high __pyx_string_tab[581]\n#define __pyx_n_u_high_data __pyx_string_tab[582]\n#define __pyx_n_u_holder __pyx_string_tab[583]\n#define __pyx_n_u_i __pyx_string_tab[584]\n#define __pyx_n_u_id __pyx_string_tab[585]\n#define __pyx_n_u_idx __pyx_string_tab[586]\n#define __pyx_n_u_import_error __pyx_string_tab[587]\n#define __pyx_n_u_in __pyx_string_tab[588]\n#define __pyx_n_u_index __pyx_string_tab[589]\n#define __pyx_n_u_info __pyx_string_tab[590]\n#define __pyx_n_u_init __pyx_string_tab[591]\n#define __pyx_n_u_input_arrays __pyx_string_tab[592]\n#define __pyx_n_u_input_name __pyx_string_tab[593]\n#define __pyx_n_u_input_names __pyx_string_tab[594]\n#define __pyx_n_u_input_price_series_names __pyx_string_tab[595]\n#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[596]\n#define __pyx_n_u_integer __pyx_string_tab[597]\n#define __pyx_n_u_is_coroutine __pyx_string_tab[598]\n#define __pyx_n_u_is_empty __pyx_string_tab[599]\n#define __pyx_n_u_items __pyx_string_tab[600]\n#define __pyx_n_u_key __pyx_string_tab[601]\n#define __pyx_n_u_keys __pyx_string_tab[602]\n#define __pyx_n_u_kwargs __pyx_string_tab[603]\n#define __pyx_n_u_length __pyx_string_tab[604]\n#define __pyx_n_u_local __pyx_string_tab[605]\n#define __pyx_n_u_local_2 __pyx_string_tab[606]\n#define __pyx_n_u_log __pyx_string_tab[607]\n#define __pyx_n_u_lookback __pyx_string_tab[608]\n#define __pyx_n_u_lookup __pyx_string_tab[609]\n#define __pyx_n_u_low __pyx_string_tab[610]\n#define __pyx_n_u_low_data __pyx_string_tab[611]\n#define __pyx_n_u_lower __pyx_string_tab[612]\n#define __pyx_n_u_main __pyx_string_tab[613]\n#define __pyx_n_u_math __pyx_string_tab[614]\n#define __pyx_n_u_matype __pyx_string_tab[615]\n#define __pyx_n_u_max __pyx_string_tab[616]\n#define __pyx_n_u_max_int __pyx_string_tab[617]\n#define __pyx_n_u_maximum __pyx_string_tab[618]\n#define __pyx_n_u_maxperiod __pyx_string_tab[619]\n#define __pyx_n_u_metaclass __pyx_string_tab[620]\n#define __pyx_n_u_min __pyx_string_tab[621]\n#define __pyx_n_u_min_int __pyx_string_tab[622]\n#define __pyx_n_u_minperiod __pyx_string_tab[623]\n#define __pyx_n_u_missing __pyx_string_tab[624]\n#define __pyx_n_u_missing_keys __pyx_string_tab[625]\n#define __pyx_n_u_module __pyx_string_tab[626]\n#define __pyx_n_u_mro_entries __pyx_string_tab[627]\n#define __pyx_n_u_msg __pyx_string_tab[628]\n#define __pyx_n_u_n __pyx_string_tab[629]\n#define __pyx_n_u_name __pyx_string_tab[630]\n#define __pyx_n_u_name_2 __pyx_string_tab[631]\n#define __pyx_n_u_nan __pyx_string_tab[632]\n#define __pyx_n_u_nbdev __pyx_string_tab[633]\n#define __pyx_n_u_nbdevdn __pyx_string_tab[634]\n#define __pyx_n_u_nbdevup __pyx_string_tab[635]\n#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[636]\n#define __pyx_n_u_num_inputs __pyx_string_tab[637]\n#define __pyx_n_u_num_opt_inputs __pyx_string_tab[638]\n#define __pyx_n_u_num_outputs __pyx_string_tab[639]\n#define __pyx_n_u_numpy __pyx_string_tab[640]\n#define __pyx_n_u_object __pyx_string_tab[641]\n#define __pyx_n_u_offsetonreverse __pyx_string_tab[642]\n#define __pyx_n_u_open __pyx_string_tab[643]\n#define __pyx_n_u_openInterest __pyx_string_tab[644]\n#define __pyx_n_u_open_data __pyx_string_tab[645]\n#define __pyx_n_u_optIn __pyx_string_tab[646]\n#define __pyx_n_u_opt_input __pyx_string_tab[647]\n#define __pyx_n_u_opt_input_values __pyx_string_tab[648]\n#define __pyx_n_u_opt_inputs __pyx_string_tab[649]\n#define __pyx_n_u_ordereddict __pyx_string_tab[650]\n#define __pyx_n_u_out __pyx_string_tab[651]\n#define __pyx_n_u_outaroondown __pyx_string_tab[652]\n#define __pyx_n_u_outaroonup __pyx_string_tab[653]\n#define __pyx_n_u_outbegidx __pyx_string_tab[654]\n#define __pyx_n_u_outfama __pyx_string_tab[655]\n#define __pyx_n_u_outfastd __pyx_string_tab[656]\n#define __pyx_n_u_outfastk __pyx_string_tab[657]\n#define __pyx_n_u_outinphase __pyx_string_tab[658]\n#define __pyx_n_u_outinteger __pyx_string_tab[659]\n#define __pyx_n_u_outinteger_data __pyx_string_tab[660]\n#define __pyx_n_u_outleadsine __pyx_string_tab[661]\n#define __pyx_n_u_outmacd __pyx_string_tab[662]\n#define __pyx_n_u_outmacdhist __pyx_string_tab[663]\n#define __pyx_n_u_outmacdsignal __pyx_string_tab[664]\n#define __pyx_n_u_outmama __pyx_string_tab[665]\n#define __pyx_n_u_outmax __pyx_string_tab[666]\n#define __pyx_n_u_outmaxidx __pyx_string_tab[667]\n#define __pyx_n_u_outmaxidx_data __pyx_string_tab[668]\n#define __pyx_n_u_outmin __pyx_string_tab[669]\n#define __pyx_n_u_outminidx __pyx_string_tab[670]\n#define __pyx_n_u_outminidx_data __pyx_string_tab[671]\n#define __pyx_n_u_outnbelement __pyx_string_tab[672]\n#define __pyx_n_u_output __pyx_string_tab[673]\n#define __pyx_n_u_output_flags __pyx_string_tab[674]\n#define __pyx_n_u_output_name __pyx_string_tab[675]\n#define __pyx_n_u_output_names __pyx_string_tab[676]\n#define __pyx_n_u_outputs __pyx_string_tab[677]\n#define __pyx_n_u_outputs_valid __pyx_string_tab[678]\n#define __pyx_n_u_outquadrature __pyx_string_tab[679]\n#define __pyx_n_u_outreal __pyx_string_tab[680]\n#define __pyx_n_u_outreallowerband __pyx_string_tab[681]\n#define __pyx_n_u_outrealmiddleband __pyx_string_tab[682]\n#define __pyx_n_u_outrealupperband __pyx_string_tab[683]\n#define __pyx_n_u_outsine __pyx_string_tab[684]\n#define __pyx_n_u_outslowd __pyx_string_tab[685]\n#define __pyx_n_u_outslowk __pyx_string_tab[686]\n#define __pyx_n_u_pandas __pyx_string_tab[687]\n#define __pyx_n_u_param __pyx_string_tab[688]\n#define __pyx_n_u_param_name __pyx_string_tab[689]\n#define __pyx_n_u_parameters __pyx_string_tab[690]\n#define __pyx_n_u_params __pyx_string_tab[691]\n#define __pyx_n_u_penetration __pyx_string_tab[692]\n#define __pyx_n_u_period __pyx_string_tab[693]\n#define __pyx_n_u_periods __pyx_string_tab[694]\n#define __pyx_n_u_periods_data __pyx_string_tab[695]\n#define __pyx_n_u_polars __pyx_string_tab[696]\n#define __pyx_n_u_pop __pyx_string_tab[697]\n#define __pyx_n_u_prepare __pyx_string_tab[698]\n#define __pyx_n_u_price __pyx_string_tab[699]\n#define __pyx_n_u_price0 __pyx_string_tab[700]\n#define __pyx_n_u_price1 __pyx_string_tab[701]\n#define __pyx_n_u_price_series __pyx_string_tab[702]\n#define __pyx_n_u_price_series_name_values __pyx_string_tab[703]\n#define __pyx_n_u_prices __pyx_string_tab[704]\n#define __pyx_n_u_property __pyx_string_tab[705]\n#define __pyx_n_u_qualname __pyx_string_tab[706]\n#define __pyx_n_u_rangetype __pyx_string_tab[707]\n#define __pyx_n_u_real __pyx_string_tab[708]\n#define __pyx_n_u_real0 __pyx_string_tab[709]\n#define __pyx_n_u_real0_data __pyx_string_tab[710]\n#define __pyx_n_u_real1 __pyx_string_tab[711]\n#define __pyx_n_u_real1_data __pyx_string_tab[712]\n#define __pyx_n_u_real_data __pyx_string_tab[713]\n#define __pyx_n_u_replace __pyx_string_tab[714]\n#define __pyx_n_u_repr __pyx_string_tab[715]\n#define __pyx_n_u_results __pyx_string_tab[716]\n#define __pyx_n_u_ret __pyx_string_tab[717]\n#define __pyx_n_u_retCode __pyx_string_tab[718]\n#define __pyx_n_u_ret_code __pyx_string_tab[719]\n#define __pyx_n_u_run __pyx_string_tab[720]\n#define __pyx_n_u_s __pyx_string_tab[721]\n#define __pyx_n_u_schema __pyx_string_tab[722]\n#define __pyx_n_u_self __pyx_string_tab[723]\n#define __pyx_n_u_series __pyx_string_tab[724]\n#define __pyx_n_u_set_function_args __pyx_string_tab[725]\n#define __pyx_n_u_set_input_arrays __pyx_string_tab[726]\n#define __pyx_n_u_set_input_names __pyx_string_tab[727]\n#define __pyx_n_u_set_name __pyx_string_tab[728]\n#define __pyx_n_u_set_parameters __pyx_string_tab[729]\n#define __pyx_n_u_setdefault __pyx_string_tab[730]\n#define __pyx_n_u_settingtype __pyx_string_tab[731]\n#define __pyx_n_u_signalmatype __pyx_string_tab[732]\n#define __pyx_n_u_signalperiod __pyx_string_tab[733]\n#define __pyx_n_u_skip_first __pyx_string_tab[734]\n#define __pyx_n_u_slowd_matype __pyx_string_tab[735]\n#define __pyx_n_u_slowd_period __pyx_string_tab[736]\n#define __pyx_n_u_slowk_matype __pyx_string_tab[737]\n#define __pyx_n_u_slowk_period __pyx_string_tab[738]\n#define __pyx_n_u_slowlimit __pyx_string_tab[739]\n#define __pyx_n_u_slowmatype __pyx_string_tab[740]\n#define __pyx_n_u_slowperiod __pyx_string_tab[741]\n#define __pyx_n_u_startvalue __pyx_string_tab[742]\n#define __pyx_n_u_str __pyx_string_tab[743]\n#define __pyx_n_u_str2bytes __pyx_string_tab[744]\n#define __pyx_n_u_stream_ACCBANDS __pyx_string_tab[745]\n#define __pyx_n_u_stream_ACOS __pyx_string_tab[746]\n#define __pyx_n_u_stream_AD __pyx_string_tab[747]\n#define __pyx_n_u_stream_ADD __pyx_string_tab[748]\n#define __pyx_n_u_stream_ADOSC __pyx_string_tab[749]\n#define __pyx_n_u_stream_ADX __pyx_string_tab[750]\n#define __pyx_n_u_stream_ADXR __pyx_string_tab[751]\n#define __pyx_n_u_stream_APO __pyx_string_tab[752]\n#define __pyx_n_u_stream_AROON __pyx_string_tab[753]\n#define __pyx_n_u_stream_AROONOSC __pyx_string_tab[754]\n#define __pyx_n_u_stream_ASIN __pyx_string_tab[755]\n#define __pyx_n_u_stream_ATAN __pyx_string_tab[756]\n#define __pyx_n_u_stream_ATR __pyx_string_tab[757]\n#define __pyx_n_u_stream_AVGDEV __pyx_string_tab[758]\n#define __pyx_n_u_stream_AVGPRICE __pyx_string_tab[759]\n#define __pyx_n_u_stream_BBANDS __pyx_string_tab[760]\n#define __pyx_n_u_stream_BETA __pyx_string_tab[761]\n#define __pyx_n_u_stream_BOP __pyx_string_tab[762]\n#define __pyx_n_u_stream_CCI __pyx_string_tab[763]\n#define __pyx_n_u_stream_CDL2CROWS __pyx_string_tab[764]\n#define __pyx_n_u_stream_CDL3BLACKCROWS __pyx_string_tab[765]\n#define __pyx_n_u_stream_CDL3INSIDE __pyx_string_tab[766]\n#define __pyx_n_u_stream_CDL3LINESTRIKE __pyx_string_tab[767]\n#define __pyx_n_u_stream_CDL3OUTSIDE __pyx_string_tab[768]\n#define __pyx_n_u_stream_CDL3STARSINSOUTH __pyx_string_tab[769]\n#define __pyx_n_u_stream_CDL3WHITESOLDIERS __pyx_string_tab[770]\n#define __pyx_n_u_stream_CDLABANDONEDBABY __pyx_string_tab[771]\n#define __pyx_n_u_stream_CDLADVANCEBLOCK __pyx_string_tab[772]\n#define __pyx_n_u_stream_CDLBELTHOLD __pyx_string_tab[773]\n#define __pyx_n_u_stream_CDLBREAKAWAY __pyx_string_tab[774]\n#define __pyx_n_u_stream_CDLCLOSINGMARUBOZU __pyx_string_tab[775]\n#define __pyx_n_u_stream_CDLCONCEALBABYSWALL __pyx_string_tab[776]\n#define __pyx_n_u_stream_CDLCOUNTERATTACK __pyx_string_tab[777]\n#define __pyx_n_u_stream_CDLDARKCLOUDCOVER __pyx_string_tab[778]\n#define __pyx_n_u_stream_CDLDOJI __pyx_string_tab[779]\n#define __pyx_n_u_stream_CDLDOJISTAR __pyx_string_tab[780]\n#define __pyx_n_u_stream_CDLDRAGONFLYDOJI __pyx_string_tab[781]\n#define __pyx_n_u_stream_CDLENGULFING __pyx_string_tab[782]\n#define __pyx_n_u_stream_CDLEVENINGDOJISTAR __pyx_string_tab[783]\n#define __pyx_n_u_stream_CDLEVENINGSTAR __pyx_string_tab[784]\n#define __pyx_n_u_stream_CDLGAPSIDESIDEWHITE __pyx_string_tab[785]\n#define __pyx_n_u_stream_CDLGRAVESTONEDOJI __pyx_string_tab[786]\n#define __pyx_n_u_stream_CDLHAMMER __pyx_string_tab[787]\n#define __pyx_n_u_stream_CDLHANGINGMAN __pyx_string_tab[788]\n#define __pyx_n_u_stream_CDLHARAMI __pyx_string_tab[789]\n#define __pyx_n_u_stream_CDLHARAMICROSS __pyx_string_tab[790]\n#define __pyx_n_u_stream_CDLHIGHWAVE __pyx_string_tab[791]\n#define __pyx_n_u_stream_CDLHIKKAKE __pyx_string_tab[792]\n#define __pyx_n_u_stream_CDLHIKKAKEMOD __pyx_string_tab[793]\n#define __pyx_n_u_stream_CDLHOMINGPIGEON __pyx_string_tab[794]\n#define __pyx_n_u_stream_CDLIDENTICAL3CROWS __pyx_string_tab[795]\n#define __pyx_n_u_stream_CDLINNECK __pyx_string_tab[796]\n#define __pyx_n_u_stream_CDLINVERTEDHAMMER __pyx_string_tab[797]\n#define __pyx_n_u_stream_CDLKICKING __pyx_string_tab[798]\n#define __pyx_n_u_stream_CDLKICKINGBYLENGTH __pyx_string_tab[799]\n#define __pyx_n_u_stream_CDLLADDERBOTTOM __pyx_string_tab[800]\n#define __pyx_n_u_stream_CDLLONGLEGGEDDOJI __pyx_string_tab[801]\n#define __pyx_n_u_stream_CDLLONGLINE __pyx_string_tab[802]\n#define __pyx_n_u_stream_CDLMARUBOZU __pyx_string_tab[803]\n#define __pyx_n_u_stream_CDLMATCHINGLOW __pyx_string_tab[804]\n#define __pyx_n_u_stream_CDLMATHOLD __pyx_string_tab[805]\n#define __pyx_n_u_stream_CDLMORNINGDOJISTAR __pyx_string_tab[806]\n#define __pyx_n_u_stream_CDLMORNINGSTAR __pyx_string_tab[807]\n#define __pyx_n_u_stream_CDLONNECK __pyx_string_tab[808]\n#define __pyx_n_u_stream_CDLPIERCING __pyx_string_tab[809]\n#define __pyx_n_u_stream_CDLRICKSHAWMAN __pyx_string_tab[810]\n#define __pyx_n_u_stream_CDLRISEFALL3METHODS __pyx_string_tab[811]\n#define __pyx_n_u_stream_CDLSEPARATINGLINES __pyx_string_tab[812]\n#define __pyx_n_u_stream_CDLSHOOTINGSTAR __pyx_string_tab[813]\n#define __pyx_n_u_stream_CDLSHORTLINE __pyx_string_tab[814]\n#define __pyx_n_u_stream_CDLSPINNINGTOP __pyx_string_tab[815]\n#define __pyx_n_u_stream_CDLSTALLEDPATTERN __pyx_string_tab[816]\n#define __pyx_n_u_stream_CDLSTICKSANDWICH __pyx_string_tab[817]\n#define __pyx_n_u_stream_CDLTAKURI __pyx_string_tab[818]\n#define __pyx_n_u_stream_CDLTASUKIGAP __pyx_string_tab[819]\n#define __pyx_n_u_stream_CDLTHRUSTING __pyx_string_tab[820]\n#define __pyx_n_u_stream_CDLTRISTAR __pyx_string_tab[821]\n#define __pyx_n_u_stream_CDLUNIQUE3RIVER __pyx_string_tab[822]\n#define __pyx_n_u_stream_CDLUPSIDEGAP2CROWS __pyx_string_tab[823]\n#define __pyx_n_u_stream_CDLXSIDEGAP3METHODS __pyx_string_tab[824]\n#define __pyx_n_u_stream_CEIL __pyx_string_tab[825]\n#define __pyx_n_u_stream_CMO __pyx_string_tab[826]\n#define __pyx_n_u_stream_CORREL __pyx_string_tab[827]\n#define __pyx_n_u_stream_COS __pyx_string_tab[828]\n#define __pyx_n_u_stream_COSH __pyx_string_tab[829]\n#define __pyx_n_u_stream_DEMA __pyx_string_tab[830]\n#define __pyx_n_u_stream_DIV __pyx_string_tab[831]\n#define __pyx_n_u_stream_DX __pyx_string_tab[832]\n#define __pyx_n_u_stream_EMA __pyx_string_tab[833]\n#define __pyx_n_u_stream_EXP __pyx_string_tab[834]\n#define __pyx_n_u_stream_FLOOR __pyx_string_tab[835]\n#define __pyx_n_u_stream_HT_DCPERIOD __pyx_string_tab[836]\n#define __pyx_n_u_stream_HT_DCPHASE __pyx_string_tab[837]\n#define __pyx_n_u_stream_HT_PHASOR __pyx_string_tab[838]\n#define __pyx_n_u_stream_HT_SINE __pyx_string_tab[839]\n#define __pyx_n_u_stream_HT_TRENDLINE __pyx_string_tab[840]\n#define __pyx_n_u_stream_HT_TRENDMODE __pyx_string_tab[841]\n#define __pyx_n_u_stream_IMI __pyx_string_tab[842]\n#define __pyx_n_u_stream_KAMA __pyx_string_tab[843]\n#define __pyx_n_u_stream_LINEARREG __pyx_string_tab[844]\n#define __pyx_n_u_stream_LINEARREG_ANGLE __pyx_string_tab[845]\n#define __pyx_n_u_stream_LINEARREG_INTERCEPT __pyx_string_tab[846]\n#define __pyx_n_u_stream_LINEARREG_SLOPE __pyx_string_tab[847]\n#define __pyx_n_u_stream_LN __pyx_string_tab[848]\n#define __pyx_n_u_stream_LOG10 __pyx_string_tab[849]\n#define __pyx_n_u_stream_MA __pyx_string_tab[850]\n#define __pyx_n_u_stream_MACD __pyx_string_tab[851]\n#define __pyx_n_u_stream_MACDEXT __pyx_string_tab[852]\n#define __pyx_n_u_stream_MACDFIX __pyx_string_tab[853]\n#define __pyx_n_u_stream_MAMA __pyx_string_tab[854]\n#define __pyx_n_u_stream_MAVP __pyx_string_tab[855]\n#define __pyx_n_u_stream_MAX __pyx_string_tab[856]\n#define __pyx_n_u_stream_MAXINDEX __pyx_string_tab[857]\n#define __pyx_n_u_stream_MEDPRICE __pyx_string_tab[858]\n#define __pyx_n_u_stream_MFI __pyx_string_tab[859]\n#define __pyx_n_u_stream_MIDPOINT __pyx_string_tab[860]\n#define __pyx_n_u_stream_MIDPRICE __pyx_string_tab[861]\n#define __pyx_n_u_stream_MIN __pyx_string_tab[862]\n#define __pyx_n_u_stream_MININDEX __pyx_string_tab[863]\n#define __pyx_n_u_stream_MINMAX __pyx_string_tab[864]\n#define __pyx_n_u_stream_MINMAXINDEX __pyx_string_tab[865]\n#define __pyx_n_u_stream_MINUS_DI __pyx_string_tab[866]\n#define __pyx_n_u_stream_MINUS_DM __pyx_string_tab[867]\n#define __pyx_n_u_stream_MOM __pyx_string_tab[868]\n#define __pyx_n_u_stream_MULT __pyx_string_tab[869]\n#define __pyx_n_u_stream_NATR __pyx_string_tab[870]\n#define __pyx_n_u_stream_OBV __pyx_string_tab[871]\n#define __pyx_n_u_stream_PLUS_DI __pyx_string_tab[872]\n#define __pyx_n_u_stream_PLUS_DM __pyx_string_tab[873]\n#define __pyx_n_u_stream_PPO __pyx_string_tab[874]\n#define __pyx_n_u_stream_ROC __pyx_string_tab[875]\n#define __pyx_n_u_stream_ROCP __pyx_string_tab[876]\n#define __pyx_n_u_stream_ROCR __pyx_string_tab[877]\n#define __pyx_n_u_stream_ROCR100 __pyx_string_tab[878]\n#define __pyx_n_u_stream_RSI __pyx_string_tab[879]\n#define __pyx_n_u_stream_SAR __pyx_string_tab[880]\n#define __pyx_n_u_stream_SAREXT __pyx_string_tab[881]\n#define __pyx_n_u_stream_SIN __pyx_string_tab[882]\n#define __pyx_n_u_stream_SINH __pyx_string_tab[883]\n#define __pyx_n_u_stream_SMA __pyx_string_tab[884]\n#define __pyx_n_u_stream_SQRT __pyx_string_tab[885]\n#define __pyx_n_u_stream_STDDEV __pyx_string_tab[886]\n#define __pyx_n_u_stream_STOCH __pyx_string_tab[887]\n#define __pyx_n_u_stream_STOCHF __pyx_string_tab[888]\n#define __pyx_n_u_stream_STOCHRSI __pyx_string_tab[889]\n#define __pyx_n_u_stream_SUB __pyx_string_tab[890]\n#define __pyx_n_u_stream_SUM __pyx_string_tab[891]\n#define __pyx_n_u_stream_T3 __pyx_string_tab[892]\n#define __pyx_n_u_stream_TAN __pyx_string_tab[893]\n#define __pyx_n_u_stream_TANH __pyx_string_tab[894]\n#define __pyx_n_u_stream_TEMA __pyx_string_tab[895]\n#define __pyx_n_u_stream_TRANGE __pyx_string_tab[896]\n#define __pyx_n_u_stream_TRIMA __pyx_string_tab[897]\n#define __pyx_n_u_stream_TRIX __pyx_string_tab[898]\n#define __pyx_n_u_stream_TSF __pyx_string_tab[899]\n#define __pyx_n_u_stream_TYPPRICE __pyx_string_tab[900]\n#define __pyx_n_u_stream_ULTOSC __pyx_string_tab[901]\n#define __pyx_n_u_stream_VAR __pyx_string_tab[902]\n#define __pyx_n_u_stream_WCLPRICE __pyx_string_tab[903]\n#define __pyx_n_u_stream_WILLR __pyx_string_tab[904]\n#define __pyx_n_u_stream_WMA __pyx_string_tab[905]\n#define __pyx_n_u_sys __pyx_string_tab[906]\n#define __pyx_n_u_ta_check_success __pyx_string_tab[907]\n#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[908]\n#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[909]\n#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[910]\n#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[911]\n#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[912]\n#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[913]\n#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[914]\n#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[915]\n#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[916]\n#define __pyx_n_u_ta_initialize __pyx_string_tab[917]\n#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[918]\n#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[919]\n#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[920]\n#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[921]\n#define __pyx_n_u_ta_shutdown __pyx_string_tab[922]\n#define __pyx_n_u_ta_version __pyx_string_tab[923]\n#define __pyx_n_u_table __pyx_string_tab[924]\n#define __pyx_n_u_talib__ta_lib __pyx_string_tab[925]\n#define __pyx_n_u_test __pyx_string_tab[926]\n#define __pyx_n_u_threading __pyx_string_tab[927]\n#define __pyx_n_u_timeStamp __pyx_string_tab[928]\n#define __pyx_n_u_timeperiod __pyx_string_tab[929]\n#define __pyx_n_u_timeperiod1 __pyx_string_tab[930]\n#define __pyx_n_u_timeperiod2 __pyx_string_tab[931]\n#define __pyx_n_u_timeperiod3 __pyx_string_tab[932]\n#define __pyx_n_u_to_numpy __pyx_string_tab[933]\n#define __pyx_n_u_type __pyx_string_tab[934]\n#define __pyx_n_u_type_2 __pyx_string_tab[935]\n#define __pyx_n_u_unicode __pyx_string_tab[936]\n#define __pyx_n_u_update __pyx_string_tab[937]\n#define __pyx_n_u_update_info __pyx_string_tab[938]\n#define __pyx_n_u_upper __pyx_string_tab[939]\n#define __pyx_n_u_value __pyx_string_tab[940]\n#define __pyx_n_u_value_range __pyx_string_tab[941]\n#define __pyx_n_u_values __pyx_string_tab[942]\n#define __pyx_n_u_version __pyx_string_tab[943]\n#define __pyx_n_u_vfactor __pyx_string_tab[944]\n#define __pyx_n_u_volume __pyx_string_tab[945]\n#define __pyx_n_u_volume_data __pyx_string_tab[946]\n#define __pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q __pyx_string_tab[947]\n#define __pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn __pyx_string_tab[948]\n#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[949]\n#define __pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S __pyx_string_tab[950]\n#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo __pyx_string_tab[951]\n#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn __pyx_string_tab[952]\n#define __pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno __pyx_string_tab[953]\n#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[954]\n#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[955]\n#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[956]\n#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[957]\n#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[958]\n#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[959]\n#define __pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A __pyx_string_tab[960]\n#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[961]\n#define __pyx_kp_b_iso88591_5_t_Qm1_d_1_c_d_3a_Q_c_d_3a_Q_u __pyx_string_tab[962]\n#define __pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v __pyx_string_tab[963]\n#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[964]\n#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[965]\n#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[966]\n#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[967]\n#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[968]\n#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[969]\n#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[970]\n#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5 __pyx_string_tab[971]\n#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[972]\n#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[973]\n#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[974]\n#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[975]\n#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[976]\n#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[977]\n#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[978]\n#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[979]\n#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[980]\n#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[981]\n#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[982]\n#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ __pyx_string_tab[983]\n#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[984]\n#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[985]\n#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[986]\n#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[987]\n#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[988]\n#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[989]\n#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[990]\n#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[991]\n#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[992]\n#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[993]\n#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[994]\n#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[995]\n#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[996]\n#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[997]\n#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[998]\n#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[999]\n#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq __pyx_string_tab[1000]\n#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr __pyx_string_tab[1001]\n#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r __pyx_string_tab[1002]\n#define __pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O __pyx_string_tab[1003]\n#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[1004]\n#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[1005]\n#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1006]\n#define __pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy __pyx_string_tab[1007]\n#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[1008]\n#define __pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1009]\n#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1010]\n#define __pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu __pyx_string_tab[1011]\n#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1012]\n#define __pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr __pyx_string_tab[1013]\n#define __pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q __pyx_string_tab[1014]\n#define __pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss __pyx_string_tab[1015]\n#define __pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf __pyx_string_tab[1016]\n#define __pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv __pyx_string_tab[1017]\n#define __pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh __pyx_string_tab[1018]\n#define __pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1019]\n#define __pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p __pyx_string_tab[1020]\n#define __pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk __pyx_string_tab[1021]\n#define __pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk __pyx_string_tab[1022]\n#define __pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k __pyx_string_tab[1023]\n#define __pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1024]\n#define __pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j __pyx_string_tab[1025]\n#define __pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll __pyx_string_tab[1026]\n#define __pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1027]\n#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[1028]\n#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[1029]\n#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz __pyx_string_tab[1030]\n#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj __pyx_string_tab[1031]\n#define __pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1032]\n#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[1033]\n#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[1034]\n#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[1035]\n#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[1036]\n#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[1037]\n#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[1038]\n#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[1039]\n#define __pyx_kp_b_iso88591_Qa_Qa_1 __pyx_string_tab[1040]\n#define __pyx_kp_b_iso88591_Qa_q_A_Q_a __pyx_string_tab[1041]\n#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[1042]\n#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[1043]\n#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[1044]\n#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[1045]\n#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[1046]\n#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[1047]\n#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1048]\n#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[1049]\n#define __pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V __pyx_string_tab[1050]\n#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[1051]\n#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd __pyx_string_tab[1052]\n#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[1053]\n#define __pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1 __pyx_string_tab[1054]\n#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[1055]\n#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk __pyx_string_tab[1056]\n#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd __pyx_string_tab[1057]\n#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr __pyx_string_tab[1058]\n#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr __pyx_string_tab[1059]\n#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4 __pyx_string_tab[1060]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q __pyx_string_tab[1061]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr __pyx_string_tab[1062]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll __pyx_string_tab[1063]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm __pyx_string_tab[1064]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv __pyx_string_tab[1065]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk __pyx_string_tab[1066]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk __pyx_string_tab[1067]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz __pyx_string_tab[1068]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql __pyx_string_tab[1069]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql __pyx_string_tab[1070]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I __pyx_string_tab[1071]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q __pyx_string_tab[1072]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1 __pyx_string_tab[1073]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj __pyx_string_tab[1074]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl __pyx_string_tab[1075]\n#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs __pyx_string_tab[1076]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82 __pyx_string_tab[1077]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v __pyx_string_tab[1078]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB __pyx_string_tab[1079]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2 __pyx_string_tab[1080]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D __pyx_string_tab[1081]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR __pyx_string_tab[1082]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv __pyx_string_tab[1083]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH __pyx_string_tab[1084]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb __pyx_string_tab[1085]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2 __pyx_string_tab[1086]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd __pyx_string_tab[1087]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2 __pyx_string_tab[1088]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr __pyx_string_tab[1089]\n#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2 __pyx_string_tab[1090]\n#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[1091]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1092]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1093]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[1094]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[1095]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[1096]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[1097]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[1098]\n#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[1099]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[1100]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[1101]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[1102]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[1103]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[1104]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[1105]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[1106]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[1107]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[1108]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[1109]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[1110]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[1111]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[1112]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[1113]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[1114]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[1115]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[1116]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[1117]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[1118]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[1119]\n#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[1120]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[1121]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[1122]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[1123]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[1124]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[1125]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[1126]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[1127]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[1128]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[1129]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[1130]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[1131]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[1132]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[1133]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[1134]\n#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[1135]\n#define __pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX __pyx_string_tab[1136]\n#define __pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K __pyx_string_tab[1137]\n#define __pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h __pyx_string_tab[1138]\n#define __pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a __pyx_string_tab[1139]\n#define __pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1140]\n#define __pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd __pyx_string_tab[1141]\n#define __pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv __pyx_string_tab[1142]\n#define __pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt __pyx_string_tab[1143]\n#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[1144]\n#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[1145]\n#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[1146]\n#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1147]\n#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[1148]\n#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1149]\n#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[1150]\n#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[1151]\n#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[1152]\n#define __pyx_int_0 __pyx_number_tab[0]\n#define __pyx_int_neg_1 __pyx_number_tab[1]\n#define __pyx_int_1 __pyx_number_tab[2]\n#define __pyx_int_2 __pyx_number_tab[3]\n#define __pyx_int_3 __pyx_number_tab[4]\n#define __pyx_int_4 __pyx_number_tab[5]\n#define __pyx_int_8 __pyx_number_tab[6]\n#define __pyx_int_9 __pyx_number_tab[7]\n#define __pyx_int_12 __pyx_number_tab[8]\n#define __pyx_int_16 __pyx_number_tab[9]\n#define __pyx_int_32 __pyx_number_tab[10]\n#define __pyx_int_64 __pyx_number_tab[11]\n#define __pyx_int_128 __pyx_number_tab[12]\n#define __pyx_int_256 __pyx_number_tab[13]\n#define __pyx_int_512 __pyx_number_tab[14]\n#define __pyx_int_1024 __pyx_number_tab[15]\n#define __pyx_int_2048 __pyx_number_tab[16]\n#define __pyx_int_4096 __pyx_number_tab[17]\n#define __pyx_int_16777216 __pyx_number_tab[18]\n#define __pyx_int_67108864 __pyx_number_tab[19]\n#define __pyx_int_134217728 __pyx_number_tab[20]\n#define __pyx_int_268435456 __pyx_number_tab[21]\n/* #### Code section: module_state_clear ### */\n#if CYTHON_USE_MODULE_STATE\nstatic CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {\n  __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);\n  if (!clear_module_state) return 0;\n  Py_CLEAR(clear_module_state->__pyx_d);\n  Py_CLEAR(clear_module_state->__pyx_b);\n  Py_CLEAR(clear_module_state->__pyx_cython_runtime);\n  Py_CLEAR(clear_module_state->__pyx_empty_tuple);\n  Py_CLEAR(clear_module_state->__pyx_empty_bytes);\n  Py_CLEAR(clear_module_state->__pyx_empty_unicode);\n  #if CYTHON_PEP489_MULTI_PHASE_INIT\n  __Pyx_State_RemoveModule(NULL);\n  #endif\n  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);\n  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);\n  for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }\n  for (int i=0; i<369; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }\n  for (int i=0; i<1153; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }\n  for (int i=0; i<22; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); }\n/* #### Code section: module_state_clear_contents ### */\n/* CommonTypesMetaclass.module_state_clear */\nPy_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);\n\n/* CythonFunctionShared.module_state_clear */\nPy_CLEAR(clear_module_state->__pyx_CyFunctionType);\n\n/* #### Code section: module_state_clear_end ### */\nreturn 0;\n}\n#endif\n/* #### Code section: module_state_traverse ### */\n#if CYTHON_USE_MODULE_STATE\nstatic CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {\n  __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);\n  if (!traverse_module_state) return 0;\n  Py_VISIT(traverse_module_state->__pyx_d);\n  Py_VISIT(traverse_module_state->__pyx_b);\n  Py_VISIT(traverse_module_state->__pyx_cython_runtime);\n  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);\n  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);\n  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);\n  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);\n  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);\n  for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }\n  for (int i=0; i<369; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }\n  for (int i=0; i<1153; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }\n  for (int i=0; i<22; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); }\n/* #### Code section: module_state_traverse_contents ### */\n/* CommonTypesMetaclass.module_state_traverse */\nPy_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);\n\n/* CythonFunctionShared.module_state_traverse */\nPy_VISIT(traverse_module_state->__pyx_CyFunctionType);\n\n/* #### Code section: module_state_traverse_end ### */\nreturn 0;\n}\n#endif\n/* #### Code section: module_code ### */\n\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) {\n  npy_intp __pyx_r;\n\n  __pyx_r = PyDataType_ELSIZE(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) {\n  npy_intp __pyx_r;\n\n  __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1;\n  __Pyx_RefNannySetupContext(\"fields\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);\n  __Pyx_INCREF(((PyObject *)__pyx_t_1));\n  __pyx_r = ((PyObject *)__pyx_t_1);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1;\n  __Pyx_RefNannySetupContext(\"names\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);\n  __Pyx_INCREF(((PyObject*)__pyx_t_1));\n  __pyx_r = ((PyObject*)__pyx_t_1);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) {\n  PyArray_ArrayDescr *__pyx_r;\n\n  __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) {\n  npy_uint64 __pyx_r;\n\n  __pyx_r = PyDataType_FLAGS(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) {\n  int __pyx_r;\n\n  __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) {\n  npy_intp __pyx_r;\n\n  __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) {\n  npy_intp __pyx_r;\n\n  __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) {\n  int __pyx_r;\n\n  __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) {\n  npy_intp *__pyx_r;\n\n  __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) {\n  void **__pyx_r;\n\n  __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {\n  PyObject *__pyx_r;\n\n  __pyx_r = PyArray_BASE(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) {\n  PyArray_Descr *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyArray_Descr *__pyx_t_1;\n  __Pyx_RefNannySetupContext(\"descr\", 0);\n\n  __Pyx_XDECREF((PyObject *)__pyx_r);\n  __pyx_t_1 = PyArray_DESCR(__pyx_v_self);\n  __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));\n  __pyx_r = ((PyArray_Descr *)__pyx_t_1);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF((PyObject *)__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {\n  int __pyx_r;\n\n  __pyx_r = PyArray_NDIM(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {\n  npy_intp *__pyx_r;\n\n  __pyx_r = PyArray_DIMS(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {\n  npy_intp *__pyx_r;\n\n  __pyx_r = PyArray_STRIDES(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {\n  npy_intp __pyx_r;\n\n  __pyx_r = PyArray_SIZE(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {\n  char *__pyx_r;\n\n  __pyx_r = PyArray_BYTES(__pyx_v_self);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PyArray_MultiIterNew1\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"numpy.PyArray_MultiIterNew1\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PyArray_MultiIterNew2\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 827, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"numpy.PyArray_MultiIterNew2\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PyArray_MultiIterNew3\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 830, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"numpy.PyArray_MultiIterNew3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PyArray_MultiIterNew4\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 833, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"numpy.PyArray_MultiIterNew4\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PyArray_MultiIterNew5\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 836, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"numpy.PyArray_MultiIterNew5\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2;\n  __Pyx_RefNannySetupContext(\"PyDataType_SHAPE\", 0);\n\n  __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);\n  if (__pyx_t_1) {\n\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray_subarray(__pyx_v_d)->shape;\n    __Pyx_INCREF(((PyObject*)__pyx_t_2));\n    __pyx_r = ((PyObject*)__pyx_t_2);\n    goto __pyx_L0;\n\n  }\n\n  /*else*/ {\n    __Pyx_XDECREF(__pyx_r);\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);\n    __pyx_r = __pyx_mstate_global->__pyx_empty_tuple;\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {\n  int __pyx_t_1;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n\n  Py_INCREF(__pyx_v_base);\n\n  __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 1028, __pyx_L1_error)\n\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_AddTraceback(\"numpy.set_array_base\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_L0:;\n}\n\n\nstatic CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {\n  PyObject *__pyx_v_base;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  __Pyx_RefNannySetupContext(\"get_array_base\", 0);\n\n  __pyx_v_base = PyArray_BASE(__pyx_v_arr);\n\n  __pyx_t_1 = (__pyx_v_base == NULL);\n  if (__pyx_t_1) {\n\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n    goto __pyx_L0;\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(((PyObject *)__pyx_v_base));\n  __pyx_r = ((PyObject *)__pyx_v_base);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_t_4;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  size_t __pyx_t_10;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"import_array\", 0);\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);\n    __Pyx_XGOTREF(__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_2);\n    __Pyx_XGOTREF(__pyx_t_3);\n    /*try:*/ {\n\n      __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1040, __pyx_L3_error)\n\n    }\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    goto __pyx_L8_try_end;\n    __pyx_L3_error:;\n\n    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));\n    if (__pyx_t_4) {\n      __Pyx_AddTraceback(\"numpy.import_array\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1041, __pyx_L5_except_error)\n      __Pyx_XGOTREF(__pyx_t_5);\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_7);\n\n      __pyx_t_9 = NULL;\n      __pyx_t_10 = 1;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to};\n        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1042, __pyx_L5_except_error)\n        __Pyx_GOTREF(__pyx_t_8);\n      }\n      __Pyx_Raise(__pyx_t_8, 0, 0, 0);\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __PYX_ERR(3, 1042, __pyx_L5_except_error)\n    }\n    goto __pyx_L5_except_error;\n\n    __pyx_L5_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_2);\n    __Pyx_XGIVEREF(__pyx_t_3);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);\n    goto __pyx_L1_error;\n    __pyx_L8_try_end:;\n  }\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_AddTraceback(\"numpy.import_array\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_t_4;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  size_t __pyx_t_10;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"import_umath\", 0);\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);\n    __Pyx_XGOTREF(__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_2);\n    __Pyx_XGOTREF(__pyx_t_3);\n    /*try:*/ {\n\n      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1046, __pyx_L3_error)\n\n    }\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    goto __pyx_L8_try_end;\n    __pyx_L3_error:;\n\n    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));\n    if (__pyx_t_4) {\n      __Pyx_AddTraceback(\"numpy.import_umath\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1047, __pyx_L5_except_error)\n      __Pyx_XGOTREF(__pyx_t_5);\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_7);\n\n      __pyx_t_9 = NULL;\n      __pyx_t_10 = 1;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};\n        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1048, __pyx_L5_except_error)\n        __Pyx_GOTREF(__pyx_t_8);\n      }\n      __Pyx_Raise(__pyx_t_8, 0, 0, 0);\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __PYX_ERR(3, 1048, __pyx_L5_except_error)\n    }\n    goto __pyx_L5_except_error;\n\n    __pyx_L5_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_2);\n    __Pyx_XGIVEREF(__pyx_t_3);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);\n    goto __pyx_L1_error;\n    __pyx_L8_try_end:;\n  }\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_AddTraceback(\"numpy.import_umath\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_t_4;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  size_t __pyx_t_10;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"import_ufunc\", 0);\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);\n    __Pyx_XGOTREF(__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_2);\n    __Pyx_XGOTREF(__pyx_t_3);\n    /*try:*/ {\n\n      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1052, __pyx_L3_error)\n\n    }\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    goto __pyx_L8_try_end;\n    __pyx_L3_error:;\n\n    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));\n    if (__pyx_t_4) {\n      __Pyx_AddTraceback(\"numpy.import_ufunc\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1053, __pyx_L5_except_error)\n      __Pyx_XGOTREF(__pyx_t_5);\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_7);\n\n      __pyx_t_9 = NULL;\n      __pyx_t_10 = 1;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};\n        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1054, __pyx_L5_except_error)\n        __Pyx_GOTREF(__pyx_t_8);\n      }\n      __Pyx_Raise(__pyx_t_8, 0, 0, 0);\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __PYX_ERR(3, 1054, __pyx_L5_except_error)\n    }\n    goto __pyx_L5_except_error;\n\n    __pyx_L5_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_2);\n    __Pyx_XGIVEREF(__pyx_t_3);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);\n    goto __pyx_L1_error;\n    __pyx_L8_try_end:;\n  }\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_AddTraceback(\"numpy.import_ufunc\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {\n  int __pyx_r;\n\n  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {\n  int __pyx_r;\n\n  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {\n  npy_datetime __pyx_r;\n\n  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {\n  npy_timedelta __pyx_r;\n\n  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {\n  NPY_DATETIMEUNIT __pyx_r;\n\n  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nstatic PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code, CYTHON_UNUSED int __pyx_skip_dispatch) {\n  PyObject *__pyx_v_description = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5[5];\n  PyObject *__pyx_t_6 = NULL;\n  size_t __pyx_t_7;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_check_success\", 0);\n\n  switch (__pyx_v_ret_code) {\n    case 0:\n\n    __Pyx_XDECREF(__pyx_r);\n    __Pyx_INCREF(Py_True);\n    __pyx_r = Py_True;\n    goto __pyx_L0;\n\n    break;\n    case 1:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N;\n\n    break;\n    case 2:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM;\n\n    break;\n    case 3:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR;\n\n    break;\n    case 4:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU;\n\n    break;\n    case 5:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F;\n\n    break;\n    case 6:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE;\n\n    break;\n    case 7:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA;\n\n    break;\n    case 8:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA;\n\n    break;\n    case 9:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN;\n\n    break;\n    case 10:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP;\n\n    break;\n    case 11:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU;\n\n    break;\n    case 12:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT;\n\n    break;\n    case 13:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF;\n\n    break;\n    case 14:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS;\n\n    break;\n    case 15:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT;\n\n    break;\n    case 16:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED;\n\n    break;\n    case 0x1388:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR;\n\n    break;\n    case 0xFFFF:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR;\n\n    break;\n    default:\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error);\n    __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error;\n    break;\n  }\n\n  __pyx_t_2 = NULL;\n\n  __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyUnicode_From_TA_RetCode(__pyx_v_ret_code, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5[0] = __pyx_t_3;\n  __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u_function_failed_with_error_code;\n  __pyx_t_5[2] = __pyx_t_4;\n  __pyx_t_5[3] = __pyx_mstate_global->__pyx_kp_u_;\n  __pyx_t_5[4] = __pyx_v_description;\n\n  __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 33 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_v_description), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_description));\n  if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 47, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __Pyx_Raise(__pyx_t_1, 0, 0, 0);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __PYX_ERR(1, 47, __pyx_L1_error)\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_check_success\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_description);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib__ta_check_success, \"_ta_check_success(str function_name, TA_RetCode ret_code)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_1_ta_check_success = {\"_ta_check_success\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_1_ta_check_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib__ta_check_success};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_function_name = 0;\n  TA_RetCode __pyx_v_ret_code;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_check_success (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_ret_code,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 6, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 6, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 6, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_check_success\", 0) < (0)) __PYX_ERR(1, 6, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_check_success\", 1, 2, 2, i); __PYX_ERR(1, 6, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 6, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 6, __pyx_L3_error)\n    }\n    __pyx_v_function_name = ((PyObject*)values[0]);\n    __pyx_v_ret_code = __Pyx_PyLong_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(1, 6, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_check_success\", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 6, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_check_success\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, \"function_name\", 1))) __PYX_ERR(1, 6, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib__ta_check_success(__pyx_self, __pyx_v_function_name, __pyx_v_ret_code);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_check_success\", 0);\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_ret_code, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_check_success\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_2_ta_initialize, \"_ta_initialize()\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_3_ta_initialize = {\"_ta_initialize\", (PyCFunction)__pyx_pw_5talib_7_ta_lib_3_ta_initialize, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_2_ta_initialize};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_initialize (wrapper)\", 0);\n  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_2_ta_initialize(__pyx_self);\n\n  /* function exit code */\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self) {\n  TA_RetCode __pyx_v_ret_code;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_initialize\", 0);\n\n  __pyx_v_ret_code = TA_Initialize();\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_initialize\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_4_ta_shutdown, \"_ta_shutdown()\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_5_ta_shutdown = {\"_ta_shutdown\", (PyCFunction)__pyx_pw_5talib_7_ta_lib_5_ta_shutdown, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_4_ta_shutdown};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_shutdown (wrapper)\", 0);\n  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_4_ta_shutdown(__pyx_self);\n\n  /* function exit code */\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self) {\n  TA_RetCode __pyx_v_ret_code;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_shutdown\", 0);\n\n  __pyx_v_ret_code = TA_Shutdown();\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_shutdown\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type___init__, \"MA_Type.__init__(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__ = {\"__init__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type___init__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__init__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 63, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 63, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__init__\", 0) < (0)) __PYX_ERR(1, 63, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__init__\", 1, 1, 1, i); __PYX_ERR(1, 63, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 63, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__init__\", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 63, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MA_Type.__init__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type___init__(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__init__\", 0);\n\n  __pyx_t_1 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Simple_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 66, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 66, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Exponential_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 67, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 67, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Weighted_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Double_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 69, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 70, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 70, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Triangular_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kaufman_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_MESA_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 73, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 73, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Generalized_Double_Expone) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 64, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.MA_Type.__init__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__, \"MA_Type.__getitem__(self, type_)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__ = {\"__getitem__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_type_ = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__getitem__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_type,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 76, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 76, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__getitem__\", 0) < (0)) __PYX_ERR(1, 76, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__getitem__\", 1, 2, 2, i); __PYX_ERR(1, 76, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 76, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_type_ = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__getitem__\", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 76, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MA_Type.__getitem__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_type_);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__getitem__\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 77, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.MA_Type.__getitem__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6_ta_set_unstable_period, \"_ta_set_unstable_period(name, period)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period = {\"_ta_set_unstable_period\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6_ta_set_unstable_period};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_name = 0;\n  PyObject *__pyx_v_period = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_set_unstable_period (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_period,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 90, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 90, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 90, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_set_unstable_period\", 0) < (0)) __PYX_ERR(1, 90, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_set_unstable_period\", 1, 2, 2, i); __PYX_ERR(1, 90, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 90, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 90, __pyx_L3_error)\n    }\n    __pyx_v_name = values[0];\n    __pyx_v_period = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_set_unstable_period\", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 90, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_unstable_period\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(__pyx_self, __pyx_v_name, __pyx_v_period);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period) {\n  TA_RetCode __pyx_v_ret_code;\n  TA_FuncUnstId __pyx_v_id;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  TA_FuncUnstId __pyx_t_3;\n  unsigned int __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_set_unstable_period\", 0);\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 92, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 92, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_3 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 92, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_v_id = __pyx_t_3;\n\n  __pyx_t_4 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_4 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 93, __pyx_L1_error)\n  __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_4);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 94, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_unstable_period\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8_ta_get_unstable_period, \"_ta_get_unstable_period(name)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period = {\"_ta_get_unstable_period\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8_ta_get_unstable_period};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_name = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_get_unstable_period (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 96, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 96, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_get_unstable_period\", 0) < (0)) __PYX_ERR(1, 96, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_get_unstable_period\", 1, 1, 1, i); __PYX_ERR(1, 96, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 96, __pyx_L3_error)\n    }\n    __pyx_v_name = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_get_unstable_period\", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 96, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_get_unstable_period\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(__pyx_self, __pyx_v_name);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) {\n  unsigned int __pyx_v_period;\n  TA_FuncUnstId __pyx_v_id;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  TA_FuncUnstId __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_get_unstable_period\", 0);\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 98, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_3 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 98, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_v_id = __pyx_t_3;\n\n  __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 100, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_get_unstable_period\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10_ta_set_compatibility, \"_ta_set_compatibility(value)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility = {\"_ta_set_compatibility\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10_ta_set_compatibility};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_value = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_set_compatibility (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 102, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 102, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_set_compatibility\", 0) < (0)) __PYX_ERR(1, 102, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_set_compatibility\", 1, 1, 1, i); __PYX_ERR(1, 102, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 102, __pyx_L3_error)\n    }\n    __pyx_v_value = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_set_compatibility\", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 102, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_compatibility\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(__pyx_self, __pyx_v_value);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) {\n  TA_RetCode __pyx_v_ret_code;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_Compatibility __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_set_compatibility\", 0);\n\n  __pyx_t_1 = __Pyx_PyLong_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(1, 104, __pyx_L1_error)\n  __pyx_v_ret_code = TA_SetCompatibility(__pyx_t_1);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 105, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_compatibility\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12_ta_get_compatibility, \"_ta_get_compatibility()\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility = {\"_ta_get_compatibility\", (PyCFunction)__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_12_ta_get_compatibility};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_get_compatibility (wrapper)\", 0);\n  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(__pyx_self);\n\n  /* function exit code */\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) {\n  int __pyx_v_value;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_get_compatibility\", 0);\n\n  __pyx_v_value = TA_GetCompatibility();\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 110, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_get_compatibility\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_set_candle_settings, \"_ta_set_candle_settings(settingtype, rangetype, avgperiod, factor)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings = {\"_ta_set_candle_settings\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14_ta_set_candle_settings};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_settingtype = 0;\n  PyObject *__pyx_v_rangetype = 0;\n  PyObject *__pyx_v_avgperiod = 0;\n  PyObject *__pyx_v_factor = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_set_candle_settings (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,&__pyx_mstate_global->__pyx_n_u_rangetype,&__pyx_mstate_global->__pyx_n_u_avgperiod,&__pyx_mstate_global->__pyx_n_u_factor,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 124, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 124, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 124, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 124, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 124, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_set_candle_settings\", 0) < (0)) __PYX_ERR(1, 124, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_set_candle_settings\", 1, 4, 4, i); __PYX_ERR(1, 124, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 124, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 124, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 124, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 124, __pyx_L3_error)\n    }\n    __pyx_v_settingtype = values[0];\n    __pyx_v_rangetype = values[1];\n    __pyx_v_avgperiod = values[2];\n    __pyx_v_factor = values[3];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_set_candle_settings\", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 124, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_candle_settings\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor) {\n  TA_RetCode __pyx_v_ret_code;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_CandleSettingType __pyx_t_1;\n  TA_RangeType __pyx_t_2;\n  int __pyx_t_3;\n  double __pyx_t_4;\n  PyObject *__pyx_t_5 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_set_candle_settings\", 0);\n\n  __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error)\n  __pyx_t_2 = __Pyx_PyLong_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error)\n  __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error)\n  __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error)\n  __pyx_v_ret_code = TA_SetCandleSettings(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4);\n\n  __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 127, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_set_candle_settings\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_restore_candle_default_settings, \"_ta_restore_candle_default_settings(settingtype)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings = {\"_ta_restore_candle_default_settings\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_restore_candle_default_settings};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_settingtype = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_restore_candle_default_settings (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 129, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 129, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_restore_candle_default_settings\", 0) < (0)) __PYX_ERR(1, 129, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_restore_candle_default_settings\", 1, 1, 1, i); __PYX_ERR(1, 129, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 129, __pyx_L3_error)\n    }\n    __pyx_v_settingtype = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_restore_candle_default_settings\", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 129, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_restore_candle_default_settings\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype) {\n  TA_RetCode __pyx_v_ret_code;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_CandleSettingType __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_restore_candle_default_settings\", 0);\n\n  __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L1_error)\n  __pyx_v_ret_code = TA_RestoreCandleDefaultSettings(__pyx_t_1);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 132, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_restore_candle_default_settings\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v_real) {\n  PyArrayObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"check_array\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = (PyArray_TYPE(__pyx_v_real) != NPY_DOUBLE);\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_type_is_not_double};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 22, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 22, __pyx_L1_error)\n\n  }\n\n  __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim_ndim(__pyx_v_real) != 1);\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_has_wrong_dimensions};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 24, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 24, __pyx_L1_error)\n\n  }\n\n  __pyx_t_1 = (!((PyArray_FLAGS(__pyx_v_real) & NPY_ARRAY_C_CONTIGUOUS) != 0));\n  if (__pyx_t_1) {\n\n    __pyx_t_2 = ((PyObject *)PyArray_GETCONTIGUOUS(__pyx_v_real)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 26, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_2));\n    __pyx_t_2 = 0;\n\n  }\n\n  __Pyx_XDECREF((PyObject *)__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n  __pyx_r = __pyx_v_real;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.check_array\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF((PyObject *)__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2) {\n  npy_intp __pyx_v_length;\n  npy_intp __pyx_r;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"check_length2\", 0);\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]);\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 34, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 34, __pyx_L1_error)\n\n  }\n\n  __pyx_r = __pyx_v_length;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.check_length2\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1L;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3) {\n  npy_intp __pyx_v_length;\n  npy_intp __pyx_r;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"check_length3\", 0);\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]);\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 42, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 42, __pyx_L1_error)\n\n  }\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 44, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 44, __pyx_L1_error)\n\n  }\n\n  __pyx_r = __pyx_v_length;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.check_length3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1L;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3, PyArrayObject *__pyx_v_a4) {\n  npy_intp __pyx_v_length;\n  npy_intp __pyx_r;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"check_length4\", 0);\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]);\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 52, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 52, __pyx_L1_error)\n\n  }\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 54, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 54, __pyx_L1_error)\n\n  }\n\n  __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a4)[0]));\n  if (unlikely(__pyx_t_1)) {\n\n    __pyx_t_3 = NULL;\n    __pyx_t_4 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 56, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(4, 56, __pyx_L1_error)\n\n  }\n\n  __pyx_r = __pyx_v_length;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.check_length4\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1L;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, double *__pyx_v_a1) {\n  double __pyx_v_val;\n  long __pyx_v_i;\n  npy_int __pyx_r;\n  npy_intp __pyx_t_1;\n  int __pyx_t_2;\n\n  __pyx_t_1 = __pyx_v_length;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {\n\n    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_r = __pyx_v_i;\n    goto __pyx_L0;\n    __pyx_L3_continue:;\n  }\n  /*else*/ {\n\n    __pyx_r = (__pyx_v_length - 1);\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2) {\n  double __pyx_v_val;\n  long __pyx_v_i;\n  npy_int __pyx_r;\n  npy_intp __pyx_t_1;\n  int __pyx_t_2;\n\n  __pyx_t_1 = __pyx_v_length;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {\n\n    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_r = __pyx_v_i;\n    goto __pyx_L0;\n    __pyx_L3_continue:;\n  }\n  /*else*/ {\n\n    __pyx_r = (__pyx_v_length - 1);\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3) {\n  double __pyx_v_val;\n  long __pyx_v_i;\n  npy_int __pyx_r;\n  npy_intp __pyx_t_1;\n  int __pyx_t_2;\n\n  __pyx_t_1 = __pyx_v_length;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {\n\n    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a3[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_r = __pyx_v_i;\n    goto __pyx_L0;\n    __pyx_L3_continue:;\n  }\n  /*else*/ {\n\n    __pyx_r = (__pyx_v_length - 1);\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3, double *__pyx_v_a4) {\n  double __pyx_v_val;\n  long __pyx_v_i;\n  npy_int __pyx_r;\n  npy_intp __pyx_t_1;\n  int __pyx_t_2;\n\n  __pyx_t_1 = __pyx_v_length;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {\n\n    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a3[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_v_val = (__pyx_v_a4[__pyx_v_i]);\n\n    __pyx_t_2 = (__pyx_v_val != __pyx_v_val);\n    if (__pyx_t_2) {\n\n      goto __pyx_L3_continue;\n\n    }\n\n    __pyx_r = __pyx_v_i;\n    goto __pyx_L0;\n    __pyx_L3_continue:;\n  }\n  /*else*/ {\n\n    __pyx_r = (__pyx_v_length - 1);\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L0:;\n  return __pyx_r;\n}\n\n\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v_length, int __pyx_v_lookback) {\n  PyArrayObject *__pyx_v_outreal = 0;\n  double *__pyx_v_outreal_data;\n  long __pyx_v_i;\n  PyArrayObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_t_3;\n  npy_intp __pyx_t_4;\n  int __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"make_double_array\", 0);\n\n  __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 125, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_outreal_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal));\n\n  __pyx_t_2 = __pyx_v_length;\n  __pyx_t_3 = __pyx_v_lookback;\n  __pyx_t_5 = (__pyx_t_2 < __pyx_t_3);\n  if (__pyx_t_5) {\n    __pyx_t_4 = __pyx_t_2;\n  } else {\n    __pyx_t_4 = __pyx_t_3;\n  }\n  __pyx_t_2 = __pyx_t_4;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {\n\n    (__pyx_v_outreal_data[__pyx_v_i]) = __pyx_v_5talib_7_ta_lib_NaN;\n  }\n\n  __Pyx_XDECREF((PyObject *)__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = __pyx_v_outreal;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.make_double_array\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XGIVEREF((PyObject *)__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_length, int __pyx_v_lookback) {\n  PyArrayObject *__pyx_v_outinteger = 0;\n  int *__pyx_v_outinteger_data;\n  long __pyx_v_i;\n  PyArrayObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_t_3;\n  npy_intp __pyx_t_4;\n  int __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"make_int_array\", 0);\n\n  __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 135, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger));\n\n  __pyx_t_2 = __pyx_v_length;\n  __pyx_t_3 = __pyx_v_lookback;\n  __pyx_t_5 = (__pyx_t_2 < __pyx_t_3);\n  if (__pyx_t_5) {\n    __pyx_t_4 = __pyx_t_2;\n  } else {\n    __pyx_t_4 = __pyx_t_3;\n  }\n  __pyx_t_2 = __pyx_t_4;\n  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {\n\n    (__pyx_v_outinteger_data[__pyx_v_i]) = 0;\n  }\n\n  __Pyx_XDECREF((PyObject *)__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = __pyx_v_outinteger;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.make_int_array\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = 0;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XGIVEREF((PyObject *)__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_19ACCBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18ACCBANDS, \"ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nACCBANDS(high, low, close[, timeperiod=?])\\n\\nAcceleration Bands (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 20\\nOutputs:\\n    upperband\\n    middleband\\n    lowerband\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_19ACCBANDS = {\"ACCBANDS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18ACCBANDS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_19ACCBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ACCBANDS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 142, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ACCBANDS\", 0) < (0)) __PYX_ERR(4, 142, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ACCBANDS\", 0, 3, 4, i); __PYX_ERR(4, 142, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ACCBANDS\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ACCBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 144, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 144, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 144, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_18ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outrealupperband = 0;\n  PyArrayObject *__pyx_v_outrealmiddleband = 0;\n  PyArrayObject *__pyx_v_outreallowerband = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ACCBANDS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 167, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 168, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 169, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 170, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 171, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 174, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 175, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 176, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ACCBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 178, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 179, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ACCBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_21ACOS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20ACOS, \"ACOS(ndarray real)\\n\\nACOS(real)\\n\\nVector Trigonometric ACos (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_21ACOS = {\"ACOS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20ACOS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_21ACOS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ACOS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 181, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 181, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ACOS\", 0) < (0)) __PYX_ERR(4, 181, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ACOS\", 1, 1, 1, i); __PYX_ERR(4, 181, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 181, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ACOS\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 181, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ACOS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 183, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_20ACOS(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ACOS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 200, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 202, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 205, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 207, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ACOS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_23AD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22AD, \"AD(ndarray high, ndarray low, ndarray close, ndarray volume)\\n\\nAD(high, low, close, volume)\\n\\nChaikin A/D Line (Volume Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_23AD = {\"AD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22AD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_23AD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"AD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 210, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 210, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 210, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 210, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 210, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"AD\", 0) < (0)) __PYX_ERR(4, 210, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"AD\", 1, 4, 4, i); __PYX_ERR(4, 210, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 210, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 210, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 210, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 210, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"AD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 210, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.AD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 212, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 212, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 212, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(4, 212, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_22AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"AD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 229, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 230, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 231, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 232, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 233, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 234, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 237, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 239, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.AD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_25ADD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ADD, \"ADD(ndarray real0, ndarray real1)\\n\\nADD(real0, real1)\\n\\nVector Arithmetic Add (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ADD = {\"ADD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ADD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_25ADD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ADD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 242, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 242, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 242, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ADD\", 0) < (0)) __PYX_ERR(4, 242, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ADD\", 1, 2, 2, i); __PYX_ERR(4, 242, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 242, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 242, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ADD\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 242, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ADD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 244, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 244, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_24ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ADD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 262, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 263, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 264, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 265, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 268, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 270, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ADD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_27ADOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26ADOSC, \"ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\\n\\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\\n\\nChaikin A/D Oscillator (Volume Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nParameters:\\n    fastperiod: 3\\n    slowperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_27ADOSC = {\"ADOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26ADOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_27ADOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ADOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 273, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ADOSC\", 0) < (0)) __PYX_ERR(4, 273, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ADOSC\", 0, 4, 6, i); __PYX_ERR(4, 273, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 273, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 273, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 273, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 273, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 273, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 275, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 275, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ADOSC\", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 273, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ADOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 275, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 275, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 275, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(4, 275, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_26ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ADOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 295, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 296, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 297, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 298, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 299, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 300, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 303, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 305, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ADOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_29ADX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADX, \"ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nADX(high, low, close[, timeperiod=?])\\n\\nAverage Directional Movement Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADX = {\"ADX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_29ADX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ADX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 308, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 308, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 308, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 308, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 308, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ADX\", 0) < (0)) __PYX_ERR(4, 308, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ADX\", 0, 3, 4, i); __PYX_ERR(4, 308, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 308, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 308, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 308, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 308, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 310, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ADX\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 308, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ADX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 310, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 310, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 310, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ADX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 329, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 330, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 331, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 332, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 333, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 336, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 338, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ADX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_31ADXR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADXR, \"ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nADXR(high, low, close[, timeperiod=?])\\n\\nAverage Directional Movement Index Rating (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADXR = {\"ADXR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADXR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_31ADXR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ADXR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 341, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ADXR\", 0) < (0)) __PYX_ERR(4, 341, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ADXR\", 0, 3, 4, i); __PYX_ERR(4, 341, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 341, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 341, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 341, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 343, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ADXR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 341, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ADXR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 343, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 343, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 343, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ADXR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 362, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 363, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 364, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 365, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 369, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 371, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ADXR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_33APO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32APO, \"APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\\n\\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\\n\\nAbsolute Price Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_33APO = {\"APO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32APO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_33APO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"APO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 374, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"APO\", 0) < (0)) __PYX_ERR(4, 374, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"APO\", 0, 1, 4, i); __PYX_ERR(4, 374, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"APO\", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 374, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.APO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 376, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_32APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_32APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"APO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 402, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 404, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.APO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_35AROON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34AROON, \"AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nAROON(high, low[, timeperiod=?])\\n\\nAroon (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    aroondown\\n    aroonup\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_35AROON = {\"AROON\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34AROON};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_35AROON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"AROON (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 407, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"AROON\", 0) < (0)) __PYX_ERR(4, 407, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"AROON\", 0, 2, 3, i); __PYX_ERR(4, 407, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 407, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 407, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 409, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"AROON\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 407, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.AROON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 409, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 409, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_34AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outaroondown = 0;\n  PyArrayObject *__pyx_v_outaroonup = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"AROON\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 430, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 431, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 432, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 433, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 436, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 437, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroonup)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 439, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 440, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outaroondown);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(4, 440, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outaroonup);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(4, 440, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.AROON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_37AROONOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36AROONOSC, \"AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nAROONOSC(high, low[, timeperiod=?])\\n\\nAroon Oscillator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_37AROONOSC = {\"AROONOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36AROONOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_37AROONOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"AROONOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 442, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 442, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 442, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 442, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"AROONOSC\", 0) < (0)) __PYX_ERR(4, 442, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"AROONOSC\", 0, 2, 3, i); __PYX_ERR(4, 442, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 442, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 442, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 442, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 444, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"AROONOSC\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 442, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.AROONOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 444, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 444, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_36AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"AROONOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 464, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 465, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 466, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 469, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 471, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.AROONOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_39ASIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38ASIN, \"ASIN(ndarray real)\\n\\nASIN(real)\\n\\nVector Trigonometric ASin (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_39ASIN = {\"ASIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38ASIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_39ASIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ASIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 474, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 474, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ASIN\", 0) < (0)) __PYX_ERR(4, 474, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ASIN\", 1, 1, 1, i); __PYX_ERR(4, 474, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 474, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ASIN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 474, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ASIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 476, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_38ASIN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ASIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 493, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 495, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 498, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 500, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ASIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_41ATAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40ATAN, \"ATAN(ndarray real)\\n\\nATAN(real)\\n\\nVector Trigonometric ATan (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_41ATAN = {\"ATAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40ATAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_41ATAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ATAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 503, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 503, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ATAN\", 0) < (0)) __PYX_ERR(4, 503, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ATAN\", 1, 1, 1, i); __PYX_ERR(4, 503, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 503, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ATAN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 503, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ATAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 505, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_40ATAN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ATAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 524, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 527, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 529, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ATAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_43ATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42ATR, \"ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nATR(high, low, close[, timeperiod=?])\\n\\nAverage True Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_43ATR = {\"ATR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42ATR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_43ATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ATR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 532, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ATR\", 0) < (0)) __PYX_ERR(4, 532, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ATR\", 0, 3, 4, i); __PYX_ERR(4, 532, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 532, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 532, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 532, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 534, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ATR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 532, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 534, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 534, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 534, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_42ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ATR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 553, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 554, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 555, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 556, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 557, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 560, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 562, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_45AVGPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AVGPRICE, \"AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nAVGPRICE(open, high, low, close)\\n\\nAverage Price (Price Transform)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AVGPRICE = {\"AVGPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AVGPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_45AVGPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"AVGPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 565, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"AVGPRICE\", 0) < (0)) __PYX_ERR(4, 565, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"AVGPRICE\", 1, 4, 4, i); __PYX_ERR(4, 565, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 565, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 565, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 565, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 565, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"AVGPRICE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 565, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.AVGPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 567, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 567, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 567, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 567, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_44AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"AVGPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 584, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 585, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 586, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 587, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 588, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 589, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 592, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 594, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.AVGPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_47AVGDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46AVGDEV, \"AVGDEV(ndarray real, int timeperiod=-0x80000000)\\n\\nAVGDEV(real[, timeperiod=?])\\n\\nAverage Deviation (Price Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_47AVGDEV = {\"AVGDEV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46AVGDEV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_47AVGDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"AVGDEV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 597, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 597, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 597, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"AVGDEV\", 0) < (0)) __PYX_ERR(4, 597, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"AVGDEV\", 0, 1, 2, i); __PYX_ERR(4, 597, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 597, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 597, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 599, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"AVGDEV\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 597, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.AVGDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 599, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_46AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"AVGDEV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 618, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 620, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 623, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 625, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.AVGDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_49BBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48BBANDS, \"BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\\n\\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\\n\\nBollinger Bands (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdevup: 2.0\\n    nbdevdn: 2.0\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    upperband\\n    middleband\\n    lowerband\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_49BBANDS = {\"BBANDS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48BBANDS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_49BBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdevup;\n  double __pyx_v_nbdevdn;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"BBANDS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 628, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"BBANDS\", 0) < (0)) __PYX_ERR(4, 628, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"BBANDS\", 0, 1, 5, i); __PYX_ERR(4, 628, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 628, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 628, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdevup = ((double)((double)-4e37));\n    }\n    if (values[3]) {\n      __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdevdn = ((double)((double)-4e37));\n    }\n    if (values[4]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"BBANDS\", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 628, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.BBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 630, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_48BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outrealupperband = 0;\n  PyArrayObject *__pyx_v_outrealmiddleband = 0;\n  PyArrayObject *__pyx_v_outreallowerband = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"BBANDS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 656, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 658, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 661, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 662, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 663, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 665, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 666, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.BBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_51BETA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50BETA, \"BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\\n\\nBETA(real0, real1[, timeperiod=?])\\n\\nBeta (Statistic Functions)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nParameters:\\n    timeperiod: 5\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_51BETA = {\"BETA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50BETA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_51BETA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"BETA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 668, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"BETA\", 0) < (0)) __PYX_ERR(4, 668, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"BETA\", 0, 2, 3, i); __PYX_ERR(4, 668, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 668, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 668, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 670, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"BETA\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 668, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.BETA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 670, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 670, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_50BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"BETA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 690, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 691, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 692, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 693, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 696, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 698, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.BETA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_53BOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52BOP, \"BOP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nBOP(open, high, low, close)\\n\\nBalance Of Power (Momentum Indicators)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_53BOP = {\"BOP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52BOP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_53BOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"BOP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 701, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 701, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 701, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 701, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 701, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"BOP\", 0) < (0)) __PYX_ERR(4, 701, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"BOP\", 1, 4, 4, i); __PYX_ERR(4, 701, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 701, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 701, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 701, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 701, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"BOP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 701, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.BOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 703, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 703, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 703, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 703, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_52BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"BOP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 720, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 722, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 723, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 724, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 725, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 728, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 730, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.BOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_55CCI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54CCI, \"CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nCCI(high, low, close[, timeperiod=?])\\n\\nCommodity Channel Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_55CCI = {\"CCI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54CCI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_55CCI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CCI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 733, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 733, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 733, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 733, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 733, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CCI\", 0) < (0)) __PYX_ERR(4, 733, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CCI\", 0, 3, 4, i); __PYX_ERR(4, 733, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 733, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 733, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 733, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 733, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 735, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CCI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 733, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CCI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 735, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 735, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 735, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_54CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CCI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 754, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 756, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 757, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 758, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 761, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 763, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CCI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_57CDL2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56CDL2CROWS, \"CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL2CROWS(open, high, low, close)\\n\\nTwo Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_57CDL2CROWS = {\"CDL2CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56CDL2CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_57CDL2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL2CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 766, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL2CROWS\", 0) < (0)) __PYX_ERR(4, 766, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL2CROWS\", 1, 4, 4, i); __PYX_ERR(4, 766, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 766, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 766, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 766, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 766, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL2CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 766, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 768, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_56CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL2CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 785, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 786, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 789, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 790, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 793, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 795, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58CDL3BLACKCROWS, \"CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3BLACKCROWS(open, high, low, close)\\n\\nThree Black Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_59CDL3BLACKCROWS = {\"CDL3BLACKCROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58CDL3BLACKCROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3BLACKCROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 798, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3BLACKCROWS\", 0) < (0)) __PYX_ERR(4, 798, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3BLACKCROWS\", 1, 4, 4, i); __PYX_ERR(4, 798, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 798, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 798, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 798, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 798, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3BLACKCROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 798, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3BLACKCROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 800, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3BLACKCROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 817, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 818, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 820, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 821, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 822, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 825, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3BLACKCROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60CDL3INSIDE, \"CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3INSIDE(open, high, low, close)\\n\\nThree Inside Up/Down (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_61CDL3INSIDE = {\"CDL3INSIDE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60CDL3INSIDE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3INSIDE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 830, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3INSIDE\", 0) < (0)) __PYX_ERR(4, 830, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3INSIDE\", 1, 4, 4, i); __PYX_ERR(4, 830, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 830, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 830, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 830, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 830, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3INSIDE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 830, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3INSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 832, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3INSIDE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 849, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 850, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 851, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 852, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 853, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 854, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 857, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 859, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3INSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CDL3LINESTRIKE, \"CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3LINESTRIKE(open, high, low, close)\\n\\nThree-Line Strike  (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CDL3LINESTRIKE = {\"CDL3LINESTRIKE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CDL3LINESTRIKE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3LINESTRIKE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 862, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3LINESTRIKE\", 0) < (0)) __PYX_ERR(4, 862, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3LINESTRIKE\", 1, 4, 4, i); __PYX_ERR(4, 862, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 862, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 862, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 862, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 862, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3LINESTRIKE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 862, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3LINESTRIKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 864, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3LINESTRIKE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 881, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 882, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 883, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 884, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 885, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 886, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 889, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 891, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3LINESTRIKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL3OUTSIDE, \"CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3OUTSIDE(open, high, low, close)\\n\\nThree Outside Up/Down (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL3OUTSIDE = {\"CDL3OUTSIDE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL3OUTSIDE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3OUTSIDE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 894, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3OUTSIDE\", 0) < (0)) __PYX_ERR(4, 894, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3OUTSIDE\", 1, 4, 4, i); __PYX_ERR(4, 894, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 894, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 894, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 894, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 894, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3OUTSIDE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 894, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3OUTSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 896, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3OUTSIDE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 914, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 916, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 917, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 918, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 921, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 923, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3OUTSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3STARSINSOUTH, \"CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3STARSINSOUTH(open, high, low, close)\\n\\nThree Stars In The South (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3STARSINSOUTH = {\"CDL3STARSINSOUTH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3STARSINSOUTH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3STARSINSOUTH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 926, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3STARSINSOUTH\", 0) < (0)) __PYX_ERR(4, 926, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3STARSINSOUTH\", 1, 4, 4, i); __PYX_ERR(4, 926, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 926, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 926, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 926, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 926, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3STARSINSOUTH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 926, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3STARSINSOUTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 928, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3STARSINSOUTH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 945, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 946, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 947, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 948, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 949, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 950, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 953, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 955, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3STARSINSOUTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3WHITESOLDIERS, \"CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3WHITESOLDIERS(open, high, low, close)\\n\\nThree Advancing White Soldiers (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3WHITESOLDIERS = {\"CDL3WHITESOLDIERS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3WHITESOLDIERS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDL3WHITESOLDIERS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 958, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDL3WHITESOLDIERS\", 0) < (0)) __PYX_ERR(4, 958, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDL3WHITESOLDIERS\", 1, 4, 4, i); __PYX_ERR(4, 958, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 958, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 958, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 958, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 958, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDL3WHITESOLDIERS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 958, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3WHITESOLDIERS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 960, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDL3WHITESOLDIERS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 977, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 979, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 980, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 981, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 982, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 985, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 987, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDL3WHITESOLDIERS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDLABANDONEDBABY, \"CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\\n\\nAbandoned Baby (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDLABANDONEDBABY = {\"CDLABANDONEDBABY\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDLABANDONEDBABY};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLABANDONEDBABY (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 990, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLABANDONEDBABY\", 0) < (0)) __PYX_ERR(4, 990, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLABANDONEDBABY\", 0, 4, 5, i); __PYX_ERR(4, 990, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 990, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 990, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 990, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 990, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 992, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLABANDONEDBABY\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 990, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLABANDONEDBABY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 992, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLABANDONEDBABY\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1011, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1012, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1013, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1014, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1015, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1016, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1019, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1021, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLABANDONEDBABY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDLADVANCEBLOCK, \"CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLADVANCEBLOCK(open, high, low, close)\\n\\nAdvance Block (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDLADVANCEBLOCK = {\"CDLADVANCEBLOCK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDLADVANCEBLOCK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLADVANCEBLOCK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1024, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1024, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1024, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1024, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1024, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLADVANCEBLOCK\", 0) < (0)) __PYX_ERR(4, 1024, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLADVANCEBLOCK\", 1, 4, 4, i); __PYX_ERR(4, 1024, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1024, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1024, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1024, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1024, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLADVANCEBLOCK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1024, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLADVANCEBLOCK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1026, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1026, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1026, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1026, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLADVANCEBLOCK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1043, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1044, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1046, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1047, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1048, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1051, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1053, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLADVANCEBLOCK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDLBELTHOLD, \"CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLBELTHOLD(open, high, low, close)\\n\\nBelt-hold (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDLBELTHOLD = {\"CDLBELTHOLD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDLBELTHOLD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLBELTHOLD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1056, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1056, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1056, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1056, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1056, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLBELTHOLD\", 0) < (0)) __PYX_ERR(4, 1056, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLBELTHOLD\", 1, 4, 4, i); __PYX_ERR(4, 1056, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1056, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1056, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1056, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1056, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLBELTHOLD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1056, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLBELTHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1058, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1058, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1058, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1058, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLBELTHOLD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1075, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1076, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1077, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1078, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1079, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1080, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1083, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1085, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLBELTHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDLBREAKAWAY, \"CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLBREAKAWAY(open, high, low, close)\\n\\nBreakaway (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDLBREAKAWAY = {\"CDLBREAKAWAY\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDLBREAKAWAY};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLBREAKAWAY (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1088, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1088, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1088, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1088, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1088, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLBREAKAWAY\", 0) < (0)) __PYX_ERR(4, 1088, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLBREAKAWAY\", 1, 4, 4, i); __PYX_ERR(4, 1088, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1088, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1088, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1088, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1088, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLBREAKAWAY\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1088, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLBREAKAWAY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1090, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1090, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1090, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1090, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLBREAKAWAY\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1107, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1108, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1109, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1110, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1111, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1112, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1115, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLBREAKAWAY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU, \"CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCLOSINGMARUBOZU(open, high, low, close)\\n\\nClosing Marubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU = {\"CDLCLOSINGMARUBOZU\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLCLOSINGMARUBOZU (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1120, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLCLOSINGMARUBOZU\", 0) < (0)) __PYX_ERR(4, 1120, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLCLOSINGMARUBOZU\", 1, 4, 4, i); __PYX_ERR(4, 1120, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1120, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1120, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1120, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1120, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLCLOSINGMARUBOZU\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1120, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCLOSINGMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1122, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLCLOSINGMARUBOZU\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1139, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1140, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1141, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1142, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1143, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1144, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1147, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1149, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCLOSINGMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLCONCEALBABYSWALL, \"CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCONCEALBABYSWALL(open, high, low, close)\\n\\nConcealing Baby Swallow (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLCONCEALBABYSWALL = {\"CDLCONCEALBABYSWALL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLCONCEALBABYSWALL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLCONCEALBABYSWALL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1152, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1152, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1152, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1152, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1152, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLCONCEALBABYSWALL\", 0) < (0)) __PYX_ERR(4, 1152, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLCONCEALBABYSWALL\", 1, 4, 4, i); __PYX_ERR(4, 1152, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1152, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1152, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1152, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1152, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLCONCEALBABYSWALL\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1152, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCONCEALBABYSWALL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1154, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1154, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1154, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1154, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLCONCEALBABYSWALL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1171, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1172, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1173, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1174, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1175, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1176, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1179, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1181, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCONCEALBABYSWALL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLCOUNTERATTACK, \"CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCOUNTERATTACK(open, high, low, close)\\n\\nCounterattack (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLCOUNTERATTACK = {\"CDLCOUNTERATTACK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLCOUNTERATTACK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLCOUNTERATTACK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1184, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1184, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1184, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1184, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1184, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLCOUNTERATTACK\", 0) < (0)) __PYX_ERR(4, 1184, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLCOUNTERATTACK\", 1, 4, 4, i); __PYX_ERR(4, 1184, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1184, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1184, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1184, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1184, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLCOUNTERATTACK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1184, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCOUNTERATTACK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1186, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1186, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1186, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1186, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLCOUNTERATTACK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1203, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1204, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1205, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1206, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1207, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1208, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1211, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1213, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLCOUNTERATTACK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLDARKCLOUDCOVER, \"CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\\n\\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\\n\\nDark Cloud Cover (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.5\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLDARKCLOUDCOVER = {\"CDLDARKCLOUDCOVER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLDARKCLOUDCOVER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLDARKCLOUDCOVER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1216, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLDARKCLOUDCOVER\", 0) < (0)) __PYX_ERR(4, 1216, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLDARKCLOUDCOVER\", 0, 4, 5, i); __PYX_ERR(4, 1216, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1216, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1218, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.5));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLDARKCLOUDCOVER\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1216, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDARKCLOUDCOVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1218, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1218, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1218, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1218, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLDARKCLOUDCOVER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1237, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1238, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1239, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1240, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1241, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1242, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1245, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1247, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDARKCLOUDCOVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLDOJI, \"CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDOJI(open, high, low, close)\\n\\nDoji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLDOJI = {\"CDLDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1250, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1250, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1250, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1250, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1250, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLDOJI\", 0) < (0)) __PYX_ERR(4, 1250, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLDOJI\", 1, 4, 4, i); __PYX_ERR(4, 1250, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1250, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1250, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1250, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1250, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1250, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1252, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1252, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1252, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1252, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1269, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1270, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1271, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1272, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1273, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1274, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1277, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLDOJISTAR, \"CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDOJISTAR(open, high, low, close)\\n\\nDoji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLDOJISTAR = {\"CDLDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1282, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1282, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1282, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1282, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1282, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLDOJISTAR\", 0) < (0)) __PYX_ERR(4, 1282, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLDOJISTAR\", 1, 4, 4, i); __PYX_ERR(4, 1282, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1282, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1282, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1282, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1282, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLDOJISTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1282, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1284, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1284, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1284, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1284, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1301, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1302, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1303, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1304, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1305, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1306, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1309, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1311, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLDRAGONFLYDOJI, \"CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDRAGONFLYDOJI(open, high, low, close)\\n\\nDragonfly Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLDRAGONFLYDOJI = {\"CDLDRAGONFLYDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLDRAGONFLYDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLDRAGONFLYDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1314, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1314, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1314, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1314, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1314, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLDRAGONFLYDOJI\", 0) < (0)) __PYX_ERR(4, 1314, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLDRAGONFLYDOJI\", 1, 4, 4, i); __PYX_ERR(4, 1314, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1314, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1314, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1314, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1314, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLDRAGONFLYDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1314, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDRAGONFLYDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1316, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1316, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1316, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1316, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLDRAGONFLYDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1333, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1334, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1335, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1336, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1337, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1338, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLDRAGONFLYDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_93CDLENGULFING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLENGULFING, \"CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLENGULFING(open, high, low, close)\\n\\nEngulfing Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLENGULFING = {\"CDLENGULFING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLENGULFING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_93CDLENGULFING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLENGULFING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1346, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLENGULFING\", 0) < (0)) __PYX_ERR(4, 1346, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLENGULFING\", 1, 4, 4, i); __PYX_ERR(4, 1346, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1346, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1346, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1346, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1346, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLENGULFING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1346, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLENGULFING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1348, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1348, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1348, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1348, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLENGULFING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1365, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1366, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1367, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1368, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1369, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1370, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1373, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLENGULFING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLEVENINGDOJISTAR, \"CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\\n\\nEvening Doji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLEVENINGDOJISTAR = {\"CDLEVENINGDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLEVENINGDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLEVENINGDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1378, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLEVENINGDOJISTAR\", 0) < (0)) __PYX_ERR(4, 1378, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLEVENINGDOJISTAR\", 0, 4, 5, i); __PYX_ERR(4, 1378, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1378, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1380, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLEVENINGDOJISTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1378, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLEVENINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1380, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1380, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1380, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1380, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLEVENINGDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1399, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1400, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1402, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1403, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1404, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLEVENINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLEVENINGSTAR, \"CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\\n\\nEvening Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLEVENINGSTAR = {\"CDLEVENINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLEVENINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLEVENINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1412, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLEVENINGSTAR\", 0) < (0)) __PYX_ERR(4, 1412, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLEVENINGSTAR\", 0, 4, 5, i); __PYX_ERR(4, 1412, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1412, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1414, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLEVENINGSTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1412, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLEVENINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1414, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLEVENINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1433, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1434, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1436, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1437, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1438, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1441, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1443, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLEVENINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE, \"CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLGAPSIDESIDEWHITE(open, high, low, close)\\n\\nUp/Down-gap side-by-side white lines (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE = {\"CDLGAPSIDESIDEWHITE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLGAPSIDESIDEWHITE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1446, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1446, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1446, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1446, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1446, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLGAPSIDESIDEWHITE\", 0) < (0)) __PYX_ERR(4, 1446, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLGAPSIDESIDEWHITE\", 1, 4, 4, i); __PYX_ERR(4, 1446, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1446, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1446, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1446, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1446, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLGAPSIDESIDEWHITE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1446, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLGAPSIDESIDEWHITE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1448, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1448, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1448, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1448, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLGAPSIDESIDEWHITE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1465, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1466, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1467, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1468, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1469, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1470, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1473, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1475, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLGAPSIDESIDEWHITE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLGRAVESTONEDOJI, \"CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLGRAVESTONEDOJI(open, high, low, close)\\n\\nGravestone Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLGRAVESTONEDOJI = {\"CDLGRAVESTONEDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLGRAVESTONEDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLGRAVESTONEDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1478, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1478, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1478, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1478, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1478, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLGRAVESTONEDOJI\", 0) < (0)) __PYX_ERR(4, 1478, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLGRAVESTONEDOJI\", 1, 4, 4, i); __PYX_ERR(4, 1478, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1478, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1478, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1478, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1478, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLGRAVESTONEDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1478, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLGRAVESTONEDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1480, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1480, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1480, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1480, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLGRAVESTONEDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1497, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1498, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1499, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1500, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1501, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1502, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLGRAVESTONEDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLHAMMER, \"CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHAMMER(open, high, low, close)\\n\\nHammer (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLHAMMER = {\"CDLHAMMER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLHAMMER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHAMMER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1510, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1510, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1510, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1510, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1510, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHAMMER\", 0) < (0)) __PYX_ERR(4, 1510, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHAMMER\", 1, 4, 4, i); __PYX_ERR(4, 1510, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1510, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1510, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1510, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1510, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHAMMER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1510, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1512, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1512, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1512, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1512, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHAMMER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1529, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1530, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1531, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1532, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1533, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1534, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1537, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1539, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLHANGINGMAN, \"CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHANGINGMAN(open, high, low, close)\\n\\nHanging Man (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLHANGINGMAN = {\"CDLHANGINGMAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLHANGINGMAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHANGINGMAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1542, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1542, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1542, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1542, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1542, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHANGINGMAN\", 0) < (0)) __PYX_ERR(4, 1542, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHANGINGMAN\", 1, 4, 4, i); __PYX_ERR(4, 1542, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1542, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1542, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1542, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1542, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHANGINGMAN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1542, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHANGINGMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1544, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1544, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1544, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1544, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHANGINGMAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1561, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1562, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1563, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1564, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1565, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1566, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1569, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1571, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHANGINGMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHARAMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLHARAMI, \"CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHARAMI(open, high, low, close)\\n\\nHarami Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLHARAMI = {\"CDLHARAMI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLHARAMI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHARAMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHARAMI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1574, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1574, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1574, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1574, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1574, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHARAMI\", 0) < (0)) __PYX_ERR(4, 1574, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHARAMI\", 1, 4, 4, i); __PYX_ERR(4, 1574, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1574, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1574, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1574, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1574, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHARAMI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1574, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHARAMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1576, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1576, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1576, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1576, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHARAMI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1593, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1594, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1595, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1596, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1597, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1598, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1601, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1603, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHARAMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLHARAMICROSS, \"CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHARAMICROSS(open, high, low, close)\\n\\nHarami Cross Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLHARAMICROSS = {\"CDLHARAMICROSS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLHARAMICROSS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHARAMICROSS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1606, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1606, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1606, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1606, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1606, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHARAMICROSS\", 0) < (0)) __PYX_ERR(4, 1606, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHARAMICROSS\", 1, 4, 4, i); __PYX_ERR(4, 1606, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1606, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1606, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1606, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1606, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHARAMICROSS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1606, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHARAMICROSS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1608, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1608, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1608, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1608, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHARAMICROSS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1625, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1626, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1627, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1628, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1629, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1630, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1633, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1635, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHARAMICROSS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHIGHWAVE, \"CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIGHWAVE(open, high, low, close)\\n\\nHigh-Wave Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHIGHWAVE = {\"CDLHIGHWAVE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHIGHWAVE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHIGHWAVE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1638, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1638, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1638, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1638, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1638, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHIGHWAVE\", 0) < (0)) __PYX_ERR(4, 1638, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHIGHWAVE\", 1, 4, 4, i); __PYX_ERR(4, 1638, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1638, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1638, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1638, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1638, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHIGHWAVE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1638, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIGHWAVE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1640, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1640, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1640, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1640, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHIGHWAVE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1657, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1659, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1660, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1661, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1662, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1665, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1667, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIGHWAVE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHIKKAKE, \"CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIKKAKE(open, high, low, close)\\n\\nHikkake Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHIKKAKE = {\"CDLHIKKAKE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHIKKAKE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHIKKAKE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1670, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1670, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1670, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1670, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1670, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHIKKAKE\", 0) < (0)) __PYX_ERR(4, 1670, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHIKKAKE\", 1, 4, 4, i); __PYX_ERR(4, 1670, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1670, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1670, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1670, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1670, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHIKKAKE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1670, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIKKAKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1672, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1672, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1672, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1672, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHIKKAKE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1689, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1690, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1691, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1692, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1693, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1694, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1697, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1699, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIKKAKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHIKKAKEMOD, \"CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIKKAKEMOD(open, high, low, close)\\n\\nModified Hikkake Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHIKKAKEMOD = {\"CDLHIKKAKEMOD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHIKKAKEMOD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHIKKAKEMOD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1702, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1702, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1702, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1702, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1702, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHIKKAKEMOD\", 0) < (0)) __PYX_ERR(4, 1702, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHIKKAKEMOD\", 1, 4, 4, i); __PYX_ERR(4, 1702, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1702, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1702, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1702, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1702, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHIKKAKEMOD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1702, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIKKAKEMOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1704, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1704, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1704, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1704, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHIKKAKEMOD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1722, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1723, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1724, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1725, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1726, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1729, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1731, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHIKKAKEMOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHOMINGPIGEON, \"CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHOMINGPIGEON(open, high, low, close)\\n\\nHoming Pigeon (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHOMINGPIGEON = {\"CDLHOMINGPIGEON\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHOMINGPIGEON};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLHOMINGPIGEON (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1734, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1734, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1734, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1734, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1734, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLHOMINGPIGEON\", 0) < (0)) __PYX_ERR(4, 1734, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLHOMINGPIGEON\", 1, 4, 4, i); __PYX_ERR(4, 1734, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1734, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1734, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1734, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1734, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLHOMINGPIGEON\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1734, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHOMINGPIGEON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1736, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1736, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1736, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1736, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLHOMINGPIGEON\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1753, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1754, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1755, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1756, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1757, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1758, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1761, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1763, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLHOMINGPIGEON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLIDENTICAL3CROWS, \"CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLIDENTICAL3CROWS(open, high, low, close)\\n\\nIdentical Three Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLIDENTICAL3CROWS = {\"CDLIDENTICAL3CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLIDENTICAL3CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLIDENTICAL3CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1766, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1766, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLIDENTICAL3CROWS\", 0) < (0)) __PYX_ERR(4, 1766, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLIDENTICAL3CROWS\", 1, 4, 4, i); __PYX_ERR(4, 1766, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1766, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1766, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1766, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1766, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLIDENTICAL3CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1766, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLIDENTICAL3CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1768, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1768, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLIDENTICAL3CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1785, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1786, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1789, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1790, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1793, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1795, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLIDENTICAL3CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_121CDLINNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLINNECK, \"CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLINNECK(open, high, low, close)\\n\\nIn-Neck Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLINNECK = {\"CDLINNECK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLINNECK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_121CDLINNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLINNECK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1798, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1798, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLINNECK\", 0) < (0)) __PYX_ERR(4, 1798, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLINNECK\", 1, 4, 4, i); __PYX_ERR(4, 1798, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1798, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1798, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1798, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1798, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLINNECK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1798, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLINNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1800, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1800, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLINNECK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1817, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1818, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1819, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1820, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1821, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1822, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1825, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1827, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLINNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLINVERTEDHAMMER, \"CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLINVERTEDHAMMER(open, high, low, close)\\n\\nInverted Hammer (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLINVERTEDHAMMER = {\"CDLINVERTEDHAMMER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLINVERTEDHAMMER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLINVERTEDHAMMER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1830, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1830, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLINVERTEDHAMMER\", 0) < (0)) __PYX_ERR(4, 1830, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLINVERTEDHAMMER\", 1, 4, 4, i); __PYX_ERR(4, 1830, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1830, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1830, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1830, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1830, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLINVERTEDHAMMER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1830, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLINVERTEDHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1832, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1832, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLINVERTEDHAMMER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1849, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1850, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1851, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1852, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1853, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1854, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1857, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1859, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLINVERTEDHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_125CDLKICKING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLKICKING, \"CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLKICKING(open, high, low, close)\\n\\nKicking (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLKICKING = {\"CDLKICKING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLKICKING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_125CDLKICKING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLKICKING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1862, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1862, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLKICKING\", 0) < (0)) __PYX_ERR(4, 1862, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLKICKING\", 1, 4, 4, i); __PYX_ERR(4, 1862, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1862, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1862, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1862, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1862, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLKICKING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1862, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLKICKING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1864, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1864, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLKICKING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1881, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1882, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1883, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1884, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1885, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1886, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1889, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1891, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLKICKING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLKICKINGBYLENGTH, \"CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLKICKINGBYLENGTH(open, high, low, close)\\n\\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLKICKINGBYLENGTH = {\"CDLKICKINGBYLENGTH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLKICKINGBYLENGTH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLKICKINGBYLENGTH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1894, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1894, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLKICKINGBYLENGTH\", 0) < (0)) __PYX_ERR(4, 1894, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLKICKINGBYLENGTH\", 1, 4, 4, i); __PYX_ERR(4, 1894, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1894, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1894, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1894, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1894, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLKICKINGBYLENGTH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1894, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLKICKINGBYLENGTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1896, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1896, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLKICKINGBYLENGTH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1914, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1916, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1917, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1918, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1921, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1923, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLKICKINGBYLENGTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLLADDERBOTTOM, \"CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLADDERBOTTOM(open, high, low, close)\\n\\nLadder Bottom (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLLADDERBOTTOM = {\"CDLLADDERBOTTOM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLLADDERBOTTOM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLLADDERBOTTOM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1926, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1926, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLLADDERBOTTOM\", 0) < (0)) __PYX_ERR(4, 1926, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLLADDERBOTTOM\", 1, 4, 4, i); __PYX_ERR(4, 1926, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1926, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1926, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1926, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1926, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLLADDERBOTTOM\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1926, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLADDERBOTTOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1928, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1928, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLLADDERBOTTOM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1945, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1946, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1947, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1948, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1949, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1950, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1953, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1955, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLADDERBOTTOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI, \"CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLONGLEGGEDDOJI(open, high, low, close)\\n\\nLong Legged Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI = {\"CDLLONGLEGGEDDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLLONGLEGGEDDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1958, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1958, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLLONGLEGGEDDOJI\", 0) < (0)) __PYX_ERR(4, 1958, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLLONGLEGGEDDOJI\", 1, 4, 4, i); __PYX_ERR(4, 1958, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1958, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1958, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1958, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1958, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLLONGLEGGEDDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1958, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLONGLEGGEDDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1960, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1960, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLLONGLEGGEDDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1977, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1979, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1980, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1981, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1982, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1985, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1987, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLONGLEGGEDDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLLONGLINE, \"CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLONGLINE(open, high, low, close)\\n\\nLong Line Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLLONGLINE = {\"CDLLONGLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLLONGLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLLONGLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 1990, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1990, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLLONGLINE\", 0) < (0)) __PYX_ERR(4, 1990, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLLONGLINE\", 1, 4, 4, i); __PYX_ERR(4, 1990, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1990, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1990, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1990, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1990, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLLONGLINE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1990, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLONGLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 1992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 1992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 1992, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 1992, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLLONGLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2009, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2010, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2011, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2012, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2013, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2014, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2017, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2019, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLLONGLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLMARUBOZU, \"CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLMARUBOZU(open, high, low, close)\\n\\nMarubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLMARUBOZU = {\"CDLMARUBOZU\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLMARUBOZU};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLMARUBOZU (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2022, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2022, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2022, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2022, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2022, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLMARUBOZU\", 0) < (0)) __PYX_ERR(4, 2022, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLMARUBOZU\", 1, 4, 4, i); __PYX_ERR(4, 2022, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2022, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2022, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2022, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2022, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLMARUBOZU\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2022, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2024, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2024, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2024, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2024, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLMARUBOZU\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2041, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2042, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2043, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2044, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2045, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2046, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2049, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2051, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLMATCHINGLOW, \"CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLMATCHINGLOW(open, high, low, close)\\n\\nMatching Low (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLMATCHINGLOW = {\"CDLMATCHINGLOW\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLMATCHINGLOW};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLMATCHINGLOW (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2054, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2054, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2054, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2054, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2054, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLMATCHINGLOW\", 0) < (0)) __PYX_ERR(4, 2054, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLMATCHINGLOW\", 1, 4, 4, i); __PYX_ERR(4, 2054, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2054, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2054, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2054, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2054, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLMATCHINGLOW\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2054, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMATCHINGLOW\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2056, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2056, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2056, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2056, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLMATCHINGLOW\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2073, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2074, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2075, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2076, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2077, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2078, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2081, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2083, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMATCHINGLOW\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLMATHOLD, \"CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\\n\\nCDLMATHOLD(open, high, low, close[, penetration=?])\\n\\nMat Hold (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.5\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLMATHOLD = {\"CDLMATHOLD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLMATHOLD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLMATHOLD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2086, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLMATHOLD\", 0) < (0)) __PYX_ERR(4, 2086, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLMATHOLD\", 0, 4, 5, i); __PYX_ERR(4, 2086, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2086, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2088, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.5));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLMATHOLD\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2086, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMATHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2088, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2088, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2088, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2088, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLMATHOLD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2107, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2108, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2109, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2110, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2111, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2112, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2115, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMATHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLMORNINGDOJISTAR, \"CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\\n\\nMorning Doji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLMORNINGDOJISTAR = {\"CDLMORNINGDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLMORNINGDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLMORNINGDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2120, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLMORNINGDOJISTAR\", 0) < (0)) __PYX_ERR(4, 2120, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLMORNINGDOJISTAR\", 0, 4, 5, i); __PYX_ERR(4, 2120, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2120, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2122, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLMORNINGDOJISTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2120, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMORNINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2122, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2122, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLMORNINGDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2141, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2142, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2143, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2144, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2145, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2146, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2149, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMORNINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMORNINGSTAR, \"CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\\n\\nMorning Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMORNINGSTAR = {\"CDLMORNINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMORNINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLMORNINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2154, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLMORNINGSTAR\", 0) < (0)) __PYX_ERR(4, 2154, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLMORNINGSTAR\", 0, 4, 5, i); __PYX_ERR(4, 2154, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2154, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2156, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLMORNINGSTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2154, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMORNINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2156, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2156, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2156, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2156, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLMORNINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2175, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2176, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2177, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2178, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2179, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2180, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2183, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2185, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLMORNINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_145CDLONNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLONNECK, \"CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLONNECK(open, high, low, close)\\n\\nOn-Neck Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLONNECK = {\"CDLONNECK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLONNECK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_145CDLONNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLONNECK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2188, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2188, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2188, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2188, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2188, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLONNECK\", 0) < (0)) __PYX_ERR(4, 2188, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLONNECK\", 1, 4, 4, i); __PYX_ERR(4, 2188, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2188, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2188, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2188, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2188, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLONNECK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2188, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLONNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2190, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2190, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2190, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2190, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLONNECK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2207, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2208, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2210, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2211, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2212, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2215, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2217, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLONNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_147CDLPIERCING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLPIERCING, \"CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLPIERCING(open, high, low, close)\\n\\nPiercing Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLPIERCING = {\"CDLPIERCING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLPIERCING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_147CDLPIERCING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLPIERCING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2220, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2220, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2220, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2220, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2220, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLPIERCING\", 0) < (0)) __PYX_ERR(4, 2220, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLPIERCING\", 1, 4, 4, i); __PYX_ERR(4, 2220, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2220, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2220, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2220, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2220, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLPIERCING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2220, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLPIERCING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2222, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2222, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2222, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2222, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLPIERCING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2239, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2240, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2241, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2242, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2243, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2244, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2247, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2249, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLPIERCING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLRICKSHAWMAN, \"CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLRICKSHAWMAN(open, high, low, close)\\n\\nRickshaw Man (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLRICKSHAWMAN = {\"CDLRICKSHAWMAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLRICKSHAWMAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLRICKSHAWMAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2252, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2252, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2252, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2252, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2252, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLRICKSHAWMAN\", 0) < (0)) __PYX_ERR(4, 2252, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLRICKSHAWMAN\", 1, 4, 4, i); __PYX_ERR(4, 2252, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2252, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2252, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2252, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2252, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLRICKSHAWMAN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2252, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLRICKSHAWMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2254, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2254, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2254, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2254, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLRICKSHAWMAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2271, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2272, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2273, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2274, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2275, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2276, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLRICKSHAWMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLRISEFALL3METHODS, \"CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLRISEFALL3METHODS(open, high, low, close)\\n\\nRising/Falling Three Methods (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLRISEFALL3METHODS = {\"CDLRISEFALL3METHODS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLRISEFALL3METHODS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLRISEFALL3METHODS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2284, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLRISEFALL3METHODS\", 0) < (0)) __PYX_ERR(4, 2284, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLRISEFALL3METHODS\", 1, 4, 4, i); __PYX_ERR(4, 2284, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2284, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2284, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2284, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2284, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLRISEFALL3METHODS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2284, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLRISEFALL3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2286, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2286, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2286, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2286, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLRISEFALL3METHODS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2303, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2304, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2305, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2306, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2307, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2308, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2311, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2313, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLRISEFALL3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLSEPARATINGLINES, \"CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSEPARATINGLINES(open, high, low, close)\\n\\nSeparating Lines (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLSEPARATINGLINES = {\"CDLSEPARATINGLINES\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLSEPARATINGLINES};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSEPARATINGLINES (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2316, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2316, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2316, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2316, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2316, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSEPARATINGLINES\", 0) < (0)) __PYX_ERR(4, 2316, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSEPARATINGLINES\", 1, 4, 4, i); __PYX_ERR(4, 2316, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2316, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2316, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2316, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2316, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSEPARATINGLINES\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2316, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSEPARATINGLINES\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2318, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2318, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2318, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2318, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSEPARATINGLINES\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2335, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2336, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2337, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2338, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2339, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2340, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2345, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSEPARATINGLINES\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLSHOOTINGSTAR, \"CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSHOOTINGSTAR(open, high, low, close)\\n\\nShooting Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLSHOOTINGSTAR = {\"CDLSHOOTINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLSHOOTINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSHOOTINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2348, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2348, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2348, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2348, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2348, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSHOOTINGSTAR\", 0) < (0)) __PYX_ERR(4, 2348, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSHOOTINGSTAR\", 1, 4, 4, i); __PYX_ERR(4, 2348, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2348, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2348, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2348, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2348, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSHOOTINGSTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2348, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSHOOTINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2350, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2350, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2350, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2350, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSHOOTINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2367, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2368, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2369, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2370, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2371, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2372, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2377, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSHOOTINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLSHORTLINE, \"CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSHORTLINE(open, high, low, close)\\n\\nShort Line Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLSHORTLINE = {\"CDLSHORTLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLSHORTLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSHORTLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2380, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2380, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2380, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2380, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2380, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSHORTLINE\", 0) < (0)) __PYX_ERR(4, 2380, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSHORTLINE\", 1, 4, 4, i); __PYX_ERR(4, 2380, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2380, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2380, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2380, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2380, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSHORTLINE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2380, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSHORTLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2382, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2382, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2382, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2382, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSHORTLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2399, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2400, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2401, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2402, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2403, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2404, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSHORTLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLSPINNINGTOP, \"CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSPINNINGTOP(open, high, low, close)\\n\\nSpinning Top (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLSPINNINGTOP = {\"CDLSPINNINGTOP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLSPINNINGTOP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSPINNINGTOP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2412, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2412, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSPINNINGTOP\", 0) < (0)) __PYX_ERR(4, 2412, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSPINNINGTOP\", 1, 4, 4, i); __PYX_ERR(4, 2412, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2412, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2412, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2412, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2412, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSPINNINGTOP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2412, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSPINNINGTOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2414, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2414, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSPINNINGTOP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2431, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2432, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2433, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2434, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2435, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2436, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2439, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2441, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSPINNINGTOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSTALLEDPATTERN, \"CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSTALLEDPATTERN(open, high, low, close)\\n\\nStalled Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSTALLEDPATTERN = {\"CDLSTALLEDPATTERN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSTALLEDPATTERN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSTALLEDPATTERN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2444, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2444, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2444, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2444, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2444, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSTALLEDPATTERN\", 0) < (0)) __PYX_ERR(4, 2444, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSTALLEDPATTERN\", 1, 4, 4, i); __PYX_ERR(4, 2444, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2444, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2444, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2444, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2444, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSTALLEDPATTERN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2444, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSTALLEDPATTERN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2446, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2446, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2446, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2446, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSTALLEDPATTERN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2463, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2464, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2465, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2466, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2467, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2468, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2471, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2473, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSTALLEDPATTERN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSTICKSANDWICH, \"CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSTICKSANDWICH(open, high, low, close)\\n\\nStick Sandwich (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSTICKSANDWICH = {\"CDLSTICKSANDWICH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSTICKSANDWICH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLSTICKSANDWICH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2476, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLSTICKSANDWICH\", 0) < (0)) __PYX_ERR(4, 2476, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLSTICKSANDWICH\", 1, 4, 4, i); __PYX_ERR(4, 2476, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2476, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2476, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2476, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2476, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLSTICKSANDWICH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2476, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSTICKSANDWICH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2478, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2478, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2478, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2478, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLSTICKSANDWICH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2495, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2496, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2497, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2498, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2499, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2500, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2503, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLSTICKSANDWICH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTAKURI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLTAKURI, \"CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTAKURI(open, high, low, close)\\n\\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLTAKURI = {\"CDLTAKURI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLTAKURI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTAKURI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLTAKURI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2508, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2508, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2508, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2508, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2508, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLTAKURI\", 0) < (0)) __PYX_ERR(4, 2508, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLTAKURI\", 1, 4, 4, i); __PYX_ERR(4, 2508, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2508, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2508, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2508, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2508, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLTAKURI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2508, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTAKURI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2510, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2510, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2510, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2510, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLTAKURI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2527, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2528, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2529, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2530, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2531, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2532, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2535, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2537, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTAKURI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLTASUKIGAP, \"CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTASUKIGAP(open, high, low, close)\\n\\nTasuki Gap (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLTASUKIGAP = {\"CDLTASUKIGAP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLTASUKIGAP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLTASUKIGAP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2540, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2540, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2540, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2540, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2540, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLTASUKIGAP\", 0) < (0)) __PYX_ERR(4, 2540, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLTASUKIGAP\", 1, 4, 4, i); __PYX_ERR(4, 2540, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2540, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2540, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2540, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2540, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLTASUKIGAP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2540, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTASUKIGAP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2542, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2542, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2542, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2542, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLTASUKIGAP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2559, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2560, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2561, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2562, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2563, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2564, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2569, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTASUKIGAP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLTHRUSTING, \"CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTHRUSTING(open, high, low, close)\\n\\nThrusting Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLTHRUSTING = {\"CDLTHRUSTING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLTHRUSTING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLTHRUSTING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2572, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2572, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2572, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2572, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2572, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLTHRUSTING\", 0) < (0)) __PYX_ERR(4, 2572, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLTHRUSTING\", 1, 4, 4, i); __PYX_ERR(4, 2572, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2572, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2572, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2572, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2572, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLTHRUSTING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2572, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTHRUSTING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2574, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2574, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2574, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2574, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLTHRUSTING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2591, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2592, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2593, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2594, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2595, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2596, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2601, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTHRUSTING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLTRISTAR, \"CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTRISTAR(open, high, low, close)\\n\\nTristar Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLTRISTAR = {\"CDLTRISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLTRISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLTRISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2604, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2604, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2604, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2604, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2604, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLTRISTAR\", 0) < (0)) __PYX_ERR(4, 2604, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLTRISTAR\", 1, 4, 4, i); __PYX_ERR(4, 2604, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2604, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2604, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2604, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2604, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLTRISTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2604, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTRISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2606, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2606, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2606, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2606, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLTRISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2623, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2624, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2625, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2626, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2627, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2628, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2631, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2633, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLTRISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLUNIQUE3RIVER, \"CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLUNIQUE3RIVER(open, high, low, close)\\n\\nUnique 3 River (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLUNIQUE3RIVER = {\"CDLUNIQUE3RIVER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLUNIQUE3RIVER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLUNIQUE3RIVER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2636, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2636, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2636, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2636, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2636, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLUNIQUE3RIVER\", 0) < (0)) __PYX_ERR(4, 2636, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLUNIQUE3RIVER\", 1, 4, 4, i); __PYX_ERR(4, 2636, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2636, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2636, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2636, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2636, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLUNIQUE3RIVER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2636, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLUNIQUE3RIVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2638, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2638, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2638, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2638, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLUNIQUE3RIVER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2655, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2656, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2657, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2659, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2660, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2663, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2665, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLUNIQUE3RIVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS, \"CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLUPSIDEGAP2CROWS(open, high, low, close)\\n\\nUpside Gap Two Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS = {\"CDLUPSIDEGAP2CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLUPSIDEGAP2CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2668, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2668, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLUPSIDEGAP2CROWS\", 0) < (0)) __PYX_ERR(4, 2668, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLUPSIDEGAP2CROWS\", 1, 4, 4, i); __PYX_ERR(4, 2668, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2668, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2668, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2668, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2668, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLUPSIDEGAP2CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2668, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLUPSIDEGAP2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2670, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2670, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2670, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2670, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLUPSIDEGAP2CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2687, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2688, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2689, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2690, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2691, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2692, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2695, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2697, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLUPSIDEGAP2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS, \"CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLXSIDEGAP3METHODS(open, high, low, close)\\n\\nUpside/Downside Gap Three Methods (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS = {\"CDLXSIDEGAP3METHODS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CDLXSIDEGAP3METHODS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2700, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2700, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2700, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2700, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2700, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CDLXSIDEGAP3METHODS\", 0) < (0)) __PYX_ERR(4, 2700, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CDLXSIDEGAP3METHODS\", 1, 4, 4, i); __PYX_ERR(4, 2700, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2700, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2700, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2700, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2700, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CDLXSIDEGAP3METHODS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2700, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLXSIDEGAP3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 2702, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2702, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2702, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2702, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CDLXSIDEGAP3METHODS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2720, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2722, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2723, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2724, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2727, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2729, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CDLXSIDEGAP3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_179CEIL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CEIL, \"CEIL(ndarray real)\\n\\nCEIL(real)\\n\\nVector Ceil (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CEIL = {\"CEIL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CEIL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_179CEIL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CEIL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2732, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2732, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CEIL\", 0) < (0)) __PYX_ERR(4, 2732, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CEIL\", 1, 1, 1, i); __PYX_ERR(4, 2732, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2732, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CEIL\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2732, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CEIL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2734, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_178CEIL(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CEIL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2751, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2753, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2756, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2758, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CEIL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_181CMO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CMO, \"CMO(ndarray real, int timeperiod=-0x80000000)\\n\\nCMO(real[, timeperiod=?])\\n\\nChande Momentum Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CMO = {\"CMO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CMO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_181CMO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CMO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2761, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2761, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2761, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CMO\", 0) < (0)) __PYX_ERR(4, 2761, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CMO\", 0, 1, 2, i); __PYX_ERR(4, 2761, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2761, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2761, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2763, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CMO\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2761, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CMO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2763, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_180CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CMO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2782, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2784, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CMO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_183CORREL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CORREL, \"CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\\n\\nCORREL(real0, real1[, timeperiod=?])\\n\\nPearson's Correlation Coefficient (r) (Statistic Functions)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CORREL = {\"CORREL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CORREL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_183CORREL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"CORREL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2792, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"CORREL\", 0) < (0)) __PYX_ERR(4, 2792, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"CORREL\", 0, 2, 3, i); __PYX_ERR(4, 2792, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2792, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2794, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"CORREL\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2792, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.CORREL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 2794, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 2794, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_182CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"CORREL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2814, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2815, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2816, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2817, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2820, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2822, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.CORREL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_185COS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184COS, \"COS(ndarray real)\\n\\nCOS(real)\\n\\nVector Trigonometric Cos (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_185COS = {\"COS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184COS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_185COS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"COS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2825, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2825, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"COS\", 0) < (0)) __PYX_ERR(4, 2825, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"COS\", 1, 1, 1, i); __PYX_ERR(4, 2825, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2825, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"COS\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2825, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.COS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2827, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_184COS(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"COS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2844, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2846, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2849, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2851, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.COS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_187COSH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186COSH, \"COSH(ndarray real)\\n\\nCOSH(real)\\n\\nVector Trigonometric Cosh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_187COSH = {\"COSH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186COSH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_187COSH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"COSH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2854, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2854, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"COSH\", 0) < (0)) __PYX_ERR(4, 2854, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"COSH\", 1, 1, 1, i); __PYX_ERR(4, 2854, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2854, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"COSH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2854, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.COSH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2856, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_186COSH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"COSH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2875, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2878, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2880, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.COSH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_189DEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188DEMA, \"DEMA(ndarray real, int timeperiod=-0x80000000)\\n\\nDEMA(real[, timeperiod=?])\\n\\nDouble Exponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_189DEMA = {\"DEMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188DEMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_189DEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"DEMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2883, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2883, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2883, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"DEMA\", 0) < (0)) __PYX_ERR(4, 2883, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"DEMA\", 0, 1, 2, i); __PYX_ERR(4, 2883, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2883, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2883, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2885, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"DEMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2883, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.DEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2885, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_188DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"DEMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2904, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2906, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2909, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2911, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.DEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_191DIV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190DIV, \"DIV(ndarray real0, ndarray real1)\\n\\nDIV(real0, real1)\\n\\nVector Arithmetic Div (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_191DIV = {\"DIV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190DIV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_191DIV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"DIV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2914, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2914, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2914, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"DIV\", 0) < (0)) __PYX_ERR(4, 2914, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"DIV\", 1, 2, 2, i); __PYX_ERR(4, 2914, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2914, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2914, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"DIV\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2914, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.DIV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 2916, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 2916, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_190DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"DIV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2934, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2935, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2936, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2937, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2940, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2942, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.DIV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_193DX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192DX, \"DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nDX(high, low, close[, timeperiod=?])\\n\\nDirectional Movement Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_193DX = {\"DX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192DX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_193DX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"DX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2945, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"DX\", 0) < (0)) __PYX_ERR(4, 2945, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"DX\", 0, 3, 4, i); __PYX_ERR(4, 2945, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2945, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2947, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"DX\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 2945, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.DX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 2947, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 2947, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 2947, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_192DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"DX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2966, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2967, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2968, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2969, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2970, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2973, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2975, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.DX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_195EMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194EMA, \"EMA(ndarray real, int timeperiod=-0x80000000)\\n\\nEMA(real[, timeperiod=?])\\n\\nExponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_195EMA = {\"EMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194EMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_195EMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"EMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 2978, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2978, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2978, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"EMA\", 0) < (0)) __PYX_ERR(4, 2978, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"EMA\", 0, 1, 2, i); __PYX_ERR(4, 2978, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2978, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2978, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2980, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"EMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2978, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.EMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 2980, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_194EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"EMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2999, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3001, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3004, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3006, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.EMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_197EXP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196EXP, \"EXP(ndarray real)\\n\\nEXP(real)\\n\\nVector Arithmetic Exp (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_197EXP = {\"EXP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196EXP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_197EXP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"EXP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3009, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3009, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"EXP\", 0) < (0)) __PYX_ERR(4, 3009, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"EXP\", 1, 1, 1, i); __PYX_ERR(4, 3009, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3009, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"EXP\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3009, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.EXP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3011, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_196EXP(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"EXP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3028, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3030, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3033, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3035, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.EXP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_199FLOOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198FLOOR, \"FLOOR(ndarray real)\\n\\nFLOOR(real)\\n\\nVector Floor (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_199FLOOR = {\"FLOOR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198FLOOR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_199FLOOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"FLOOR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3038, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3038, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"FLOOR\", 0) < (0)) __PYX_ERR(4, 3038, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"FLOOR\", 1, 1, 1, i); __PYX_ERR(4, 3038, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3038, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"FLOOR\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3038, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.FLOOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3040, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_198FLOOR(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"FLOOR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3057, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3059, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3062, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.FLOOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200HT_DCPERIOD, \"HT_DCPERIOD(ndarray real)\\n\\nHT_DCPERIOD(real)\\n\\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_201HT_DCPERIOD = {\"HT_DCPERIOD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200HT_DCPERIOD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_DCPERIOD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3067, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3067, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_DCPERIOD\", 0) < (0)) __PYX_ERR(4, 3067, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_DCPERIOD\", 1, 1, 1, i); __PYX_ERR(4, 3067, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3067, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_DCPERIOD\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3067, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_DCPERIOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3069, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_DCPERIOD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3086, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3088, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3091, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3093, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_DCPERIOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202HT_DCPHASE, \"HT_DCPHASE(ndarray real)\\n\\nHT_DCPHASE(real)\\n\\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_203HT_DCPHASE = {\"HT_DCPHASE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202HT_DCPHASE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_DCPHASE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3096, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_DCPHASE\", 0) < (0)) __PYX_ERR(4, 3096, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_DCPHASE\", 1, 1, 1, i); __PYX_ERR(4, 3096, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3096, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_DCPHASE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3096, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_DCPHASE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3098, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_DCPHASE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3115, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3117, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3120, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3122, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_DCPHASE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_205HT_PHASOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204HT_PHASOR, \"HT_PHASOR(ndarray real)\\n\\nHT_PHASOR(real)\\n\\nHilbert Transform - Phasor Components (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    inphase\\n    quadrature\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_205HT_PHASOR = {\"HT_PHASOR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204HT_PHASOR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_205HT_PHASOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_PHASOR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3125, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3125, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_PHASOR\", 0) < (0)) __PYX_ERR(4, 3125, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_PHASOR\", 1, 1, 1, i); __PYX_ERR(4, 3125, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3125, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_PHASOR\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3125, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_PHASOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3127, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_204HT_PHASOR(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinphase = 0;\n  PyArrayObject *__pyx_v_outquadrature = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_PHASOR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3146, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3148, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3152, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outquadrature)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3154, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3155, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinphase);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(4, 3155, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outquadrature);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(4, 3155, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_PHASOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinphase);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_207HT_SINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206HT_SINE, \"HT_SINE(ndarray real)\\n\\nHT_SINE(real)\\n\\nHilbert Transform - SineWave (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    sine\\n    leadsine\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_207HT_SINE = {\"HT_SINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206HT_SINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_207HT_SINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_SINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3157, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3157, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_SINE\", 0) < (0)) __PYX_ERR(4, 3157, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_SINE\", 1, 1, 1, i); __PYX_ERR(4, 3157, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3157, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_SINE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3157, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_SINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3159, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_206HT_SINE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outsine = 0;\n  PyArrayObject *__pyx_v_outleadsine = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_SINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3178, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3180, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3183, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outleadsine)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3186, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3187, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outsine);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outsine);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(4, 3187, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outleadsine);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(4, 3187, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_SINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outsine);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208HT_TRENDLINE, \"HT_TRENDLINE(ndarray real)\\n\\nHT_TRENDLINE(real)\\n\\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_209HT_TRENDLINE = {\"HT_TRENDLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208HT_TRENDLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_TRENDLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3189, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3189, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_TRENDLINE\", 0) < (0)) __PYX_ERR(4, 3189, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_TRENDLINE\", 1, 1, 1, i); __PYX_ERR(4, 3189, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3189, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_TRENDLINE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3189, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_TRENDLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3191, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_TRENDLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3208, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3210, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3213, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3215, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_TRENDLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210HT_TRENDMODE, \"HT_TRENDMODE(ndarray real)\\n\\nHT_TRENDMODE(real)\\n\\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_211HT_TRENDMODE = {\"HT_TRENDMODE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210HT_TRENDMODE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"HT_TRENDMODE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3218, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"HT_TRENDMODE\", 0) < (0)) __PYX_ERR(4, 3218, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"HT_TRENDMODE\", 1, 1, 1, i); __PYX_ERR(4, 3218, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3218, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"HT_TRENDMODE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3218, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_TRENDMODE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3220, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"HT_TRENDMODE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3237, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3239, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3242, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3244, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.HT_TRENDMODE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_213IMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212IMI, \"IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\\n\\nIMI(open, close[, timeperiod=?])\\n\\nIntraday Momentum Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['open', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_213IMI = {\"IMI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212IMI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_213IMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"IMI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3247, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"IMI\", 0) < (0)) __PYX_ERR(4, 3247, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"IMI\", 0, 2, 3, i); __PYX_ERR(4, 3247, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3247, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_close = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3249, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"IMI\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3247, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.IMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(4, 3249, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 3249, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_212IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"IMI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3268, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3269, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3270, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3271, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3274, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3276, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.IMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_215KAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214KAMA, \"KAMA(ndarray real, int timeperiod=-0x80000000)\\n\\nKAMA(real[, timeperiod=?])\\n\\nKaufman Adaptive Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_215KAMA = {\"KAMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214KAMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_215KAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"KAMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3279, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3279, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3279, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"KAMA\", 0) < (0)) __PYX_ERR(4, 3279, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"KAMA\", 0, 1, 2, i); __PYX_ERR(4, 3279, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3279, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3279, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3281, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"KAMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3279, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.KAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3281, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_214KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"KAMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3300, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3302, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3305, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3307, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.KAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216LINEARREG, \"LINEARREG(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG(real[, timeperiod=?])\\n\\nLinear Regression (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_217LINEARREG = {\"LINEARREG\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216LINEARREG};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LINEARREG (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3310, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3310, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3310, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LINEARREG\", 0) < (0)) __PYX_ERR(4, 3310, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LINEARREG\", 0, 1, 2, i); __PYX_ERR(4, 3310, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3310, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3310, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3312, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LINEARREG\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3310, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3312, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_216LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LINEARREG\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3331, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3333, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3336, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3338, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218LINEARREG_ANGLE, \"LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_ANGLE(real[, timeperiod=?])\\n\\nLinear Regression Angle (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_219LINEARREG_ANGLE = {\"LINEARREG_ANGLE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218LINEARREG_ANGLE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LINEARREG_ANGLE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3341, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LINEARREG_ANGLE\", 0) < (0)) __PYX_ERR(4, 3341, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LINEARREG_ANGLE\", 0, 1, 2, i); __PYX_ERR(4, 3341, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3341, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3341, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3343, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LINEARREG_ANGLE\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3341, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_ANGLE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3343, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LINEARREG_ANGLE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3362, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3364, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3367, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3369, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_ANGLE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220LINEARREG_INTERCEPT, \"LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_INTERCEPT(real[, timeperiod=?])\\n\\nLinear Regression Intercept (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_221LINEARREG_INTERCEPT = {\"LINEARREG_INTERCEPT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220LINEARREG_INTERCEPT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LINEARREG_INTERCEPT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3372, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3372, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3372, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LINEARREG_INTERCEPT\", 0) < (0)) __PYX_ERR(4, 3372, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LINEARREG_INTERCEPT\", 0, 1, 2, i); __PYX_ERR(4, 3372, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3372, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3372, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3374, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LINEARREG_INTERCEPT\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3372, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_INTERCEPT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3374, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LINEARREG_INTERCEPT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3393, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3395, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3398, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3400, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_INTERCEPT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222LINEARREG_SLOPE, \"LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_SLOPE(real[, timeperiod=?])\\n\\nLinear Regression Slope (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_223LINEARREG_SLOPE = {\"LINEARREG_SLOPE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222LINEARREG_SLOPE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LINEARREG_SLOPE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3403, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3403, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3403, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LINEARREG_SLOPE\", 0) < (0)) __PYX_ERR(4, 3403, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LINEARREG_SLOPE\", 0, 1, 2, i); __PYX_ERR(4, 3403, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3403, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3403, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3405, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LINEARREG_SLOPE\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3403, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_SLOPE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3405, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LINEARREG_SLOPE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3424, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3426, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3429, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3431, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LINEARREG_SLOPE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_225LN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224LN, \"LN(ndarray real)\\n\\nLN(real)\\n\\nVector Log Natural (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_225LN = {\"LN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224LN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_225LN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3434, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3434, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LN\", 0) < (0)) __PYX_ERR(4, 3434, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LN\", 1, 1, 1, i); __PYX_ERR(4, 3434, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3434, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3434, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3436, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_224LN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3453, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3455, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3458, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3460, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_227LOG10(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226LOG10, \"LOG10(ndarray real)\\n\\nLOG10(real)\\n\\nVector Log10 (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_227LOG10 = {\"LOG10\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226LOG10};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_227LOG10(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"LOG10 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3463, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3463, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"LOG10\", 0) < (0)) __PYX_ERR(4, 3463, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"LOG10\", 1, 1, 1, i); __PYX_ERR(4, 3463, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3463, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"LOG10\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3463, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.LOG10\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3465, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_226LOG10(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"LOG10\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3482, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3484, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3487, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3489, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.LOG10\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_229MA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228MA, \"MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\\n\\nMA(real[, timeperiod=?, matype=?])\\n\\nMoving average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_229MA = {\"MA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228MA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_229MA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3492, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MA\", 0) < (0)) __PYX_ERR(4, 3492, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MA\", 0, 1, 3, i); __PYX_ERR(4, 3492, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3492, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3494, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3494, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MA\", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3492, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3494, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_228MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3514, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3516, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3519, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_231MACD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230MACD, \"MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\\n\\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\\n\\nMoving Average Convergence/Divergence (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    signalperiod: 9\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_231MACD = {\"MACD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230MACD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_231MACD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_signalperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MACD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3524, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MACD\", 0) < (0)) __PYX_ERR(4, 3524, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MACD\", 0, 1, 4, i); __PYX_ERR(4, 3524, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3524, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MACD\", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 3524, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MACD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3526, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_230MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outmacd = 0;\n  PyArrayObject *__pyx_v_outmacdsignal = 0;\n  PyArrayObject *__pyx_v_outmacdhist = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MACD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3551, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3553, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3556, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3557, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3558, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3560, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3561, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MACD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_233MACDEXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232MACDEXT, \"MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\\n\\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\\n\\nMACD with controllable MA type (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    fastmatype: 0\\n    slowperiod: 26\\n    slowmatype: 0\\n    signalperiod: 9\\n    signalmatype: 0\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_233MACDEXT = {\"MACDEXT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232MACDEXT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_233MACDEXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_fastmatype;\n  int __pyx_v_slowperiod;\n  int __pyx_v_slowmatype;\n  int __pyx_v_signalperiod;\n  int __pyx_v_signalmatype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[7] = {0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MACDEXT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3563, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MACDEXT\", 0) < (0)) __PYX_ERR(4, 3563, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MACDEXT\", 0, 1, 7, i); __PYX_ERR(4, 3563, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3563, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_fastmatype = ((int)((int)0));\n    }\n    if (values[3]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_slowmatype = ((int)((int)0));\n    }\n    if (values[5]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n    if (values[6]) {\n      __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error)\n    } else {\n      __pyx_v_signalmatype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MACDEXT\", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 3563, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MACDEXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_232MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outmacd = 0;\n  PyArrayObject *__pyx_v_outmacdsignal = 0;\n  PyArrayObject *__pyx_v_outmacdhist = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MACDEXT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3593, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3595, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3598, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3600, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3603, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MACDEXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_235MACDFIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234MACDFIX, \"MACDFIX(ndarray real, int signalperiod=-0x80000000)\\n\\nMACDFIX(real[, signalperiod=?])\\n\\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    signalperiod: 9\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_235MACDFIX = {\"MACDFIX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234MACDFIX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_235MACDFIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_signalperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MACDFIX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3605, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MACDFIX\", 0) < (0)) __PYX_ERR(4, 3605, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MACDFIX\", 0, 1, 2, i); __PYX_ERR(4, 3605, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3605, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3607, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MACDFIX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3605, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MACDFIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3607, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_234MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outmacd = 0;\n  PyArrayObject *__pyx_v_outmacdsignal = 0;\n  PyArrayObject *__pyx_v_outmacdhist = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MACDFIX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3630, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3632, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3635, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3636, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3637, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3639, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3640, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MACDFIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_237MAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236MAMA, \"MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\\n\\nMAMA(real[, fastlimit=?, slowlimit=?])\\n\\nMESA Adaptive Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastlimit: 0.5\\n    slowlimit: 0.05\\nOutputs:\\n    mama\\n    fama\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_237MAMA = {\"MAMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236MAMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_237MAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  double __pyx_v_fastlimit;\n  double __pyx_v_slowlimit;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MAMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3642, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MAMA\", 0) < (0)) __PYX_ERR(4, 3642, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MAMA\", 0, 1, 3, i); __PYX_ERR(4, 3642, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3642, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3644, __pyx_L3_error)\n    } else {\n      __pyx_v_fastlimit = ((double)((double)-4e37));\n    }\n    if (values[2]) {\n      __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3644, __pyx_L3_error)\n    } else {\n      __pyx_v_slowlimit = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MAMA\", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3642, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3644, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_236MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outmama = 0;\n  PyArrayObject *__pyx_v_outfama = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MAMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3666, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3668, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3671, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3672, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfama)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3674, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3675, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmama);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmama);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(4, 3675, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outfama);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outfama);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(4, 3675, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmama);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outfama);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_239MAVP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238MAVP, \"MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\\n\\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\\n\\nMoving average with variable period (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\n    periods: (any ndarray)\\nParameters:\\n    minperiod: 2\\n    maxperiod: 30\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_239MAVP = {\"MAVP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238MAVP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_239MAVP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  PyArrayObject *__pyx_v_periods = 0;\n  int __pyx_v_minperiod;\n  int __pyx_v_maxperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MAVP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3677, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MAVP\", 0) < (0)) __PYX_ERR(4, 3677, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MAVP\", 0, 2, 5, i); __PYX_ERR(4, 3677, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3677, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    __pyx_v_periods = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error)\n    } else {\n      __pyx_v_minperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error)\n    } else {\n      __pyx_v_maxperiod = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MAVP\", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 3677, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MAVP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3679, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"periods\", 0))) __PYX_ERR(4, 3679, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_238MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MAVP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n  __Pyx_INCREF((PyObject *)__pyx_v_periods);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3701, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3702, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3703, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3704, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3707, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3709, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MAVP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XDECREF((PyObject *)__pyx_v_periods);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_241MAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240MAX, \"MAX(ndarray real, int timeperiod=-0x80000000)\\n\\nMAX(real[, timeperiod=?])\\n\\nHighest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_241MAX = {\"MAX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240MAX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_241MAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MAX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3712, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3712, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3712, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MAX\", 0) < (0)) __PYX_ERR(4, 3712, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MAX\", 0, 1, 2, i); __PYX_ERR(4, 3712, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3712, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3712, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MAX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3712, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3714, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_240MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MAX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3733, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3735, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3738, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3740, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_243MAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242MAXINDEX, \"MAXINDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMAXINDEX(real[, timeperiod=?])\\n\\nIndex of highest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_243MAXINDEX = {\"MAXINDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242MAXINDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_243MAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MAXINDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3743, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3743, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3743, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MAXINDEX\", 0) < (0)) __PYX_ERR(4, 3743, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MAXINDEX\", 0, 1, 2, i); __PYX_ERR(4, 3743, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3743, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3743, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3745, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MAXINDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3743, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3745, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_242MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  int *__pyx_v_outinteger_data;\n  int __pyx_v_i;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  npy_intp __pyx_t_3;\n  int __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MAXINDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3764, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3766, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3769, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3771, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger));\n\n  __pyx_t_3 = __pyx_v_length;\n  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {\n\n    __pyx_t_4 = __pyx_v_i;\n    (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx);\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_245MEDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244MEDPRICE, \"MEDPRICE(ndarray high, ndarray low)\\n\\nMEDPRICE(high, low)\\n\\nMedian Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_245MEDPRICE = {\"MEDPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244MEDPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_245MEDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MEDPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3777, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3777, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3777, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MEDPRICE\", 0) < (0)) __PYX_ERR(4, 3777, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MEDPRICE\", 1, 2, 2, i); __PYX_ERR(4, 3777, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3777, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3777, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MEDPRICE\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3777, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MEDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 3779, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 3779, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_244MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MEDPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3796, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3797, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3798, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3799, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3802, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3804, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MEDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_247MFI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246MFI, \"MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\\n\\nMFI(high, low, close, volume[, timeperiod=?])\\n\\nMoney Flow Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_247MFI = {\"MFI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246MFI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_247MFI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MFI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3807, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MFI\", 0) < (0)) __PYX_ERR(4, 3807, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MFI\", 0, 4, 5, i); __PYX_ERR(4, 3807, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3807, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3809, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MFI\", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 3807, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MFI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 3809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 3809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 3809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(4, 3809, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_246MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MFI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3828, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3829, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3830, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3831, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3832, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3833, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3836, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3838, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MFI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_249MIDPOINT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248MIDPOINT, \"MIDPOINT(ndarray real, int timeperiod=-0x80000000)\\n\\nMIDPOINT(real[, timeperiod=?])\\n\\nMidPoint over period (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_249MIDPOINT = {\"MIDPOINT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248MIDPOINT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_249MIDPOINT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MIDPOINT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3841, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3841, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3841, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MIDPOINT\", 0) < (0)) __PYX_ERR(4, 3841, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MIDPOINT\", 0, 1, 2, i); __PYX_ERR(4, 3841, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3841, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3841, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3843, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MIDPOINT\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3841, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MIDPOINT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3843, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_248MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MIDPOINT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3862, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3864, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3867, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3869, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MIDPOINT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_251MIDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250MIDPRICE, \"MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nMIDPRICE(high, low[, timeperiod=?])\\n\\nMidpoint Price over period (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_251MIDPRICE = {\"MIDPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250MIDPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_251MIDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MIDPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3872, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MIDPRICE\", 0) < (0)) __PYX_ERR(4, 3872, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MIDPRICE\", 0, 2, 3, i); __PYX_ERR(4, 3872, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3872, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3874, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MIDPRICE\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3872, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MIDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 3874, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 3874, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_250MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MIDPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3893, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3894, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3895, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3896, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3899, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3901, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MIDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_253MIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252MIN, \"MIN(ndarray real, int timeperiod=-0x80000000)\\n\\nMIN(real[, timeperiod=?])\\n\\nLowest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_253MIN = {\"MIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252MIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_253MIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3904, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3904, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3904, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MIN\", 0) < (0)) __PYX_ERR(4, 3904, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MIN\", 0, 1, 2, i); __PYX_ERR(4, 3904, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3904, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3904, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3906, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MIN\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3904, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3906, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_252MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3925, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3927, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3930, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3932, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_255MININDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254MININDEX, \"MININDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMININDEX(real[, timeperiod=?])\\n\\nIndex of lowest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_255MININDEX = {\"MININDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254MININDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_255MININDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MININDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3935, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3935, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3935, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MININDEX\", 0) < (0)) __PYX_ERR(4, 3935, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MININDEX\", 0, 1, 2, i); __PYX_ERR(4, 3935, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3935, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3935, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3937, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MININDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3935, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MININDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3937, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_254MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outinteger = 0;\n  int *__pyx_v_outinteger_data;\n  int __pyx_v_i;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  npy_intp __pyx_t_3;\n  int __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MININDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3956, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3958, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3961, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3963, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger));\n\n  __pyx_t_3 = __pyx_v_length;\n  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {\n\n    __pyx_t_4 = __pyx_v_i;\n    (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx);\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outinteger);\n  __pyx_r = ((PyObject *)__pyx_v_outinteger);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MININDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_257MINMAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256MINMAX, \"MINMAX(ndarray real, int timeperiod=-0x80000000)\\n\\nMINMAX(real[, timeperiod=?])\\n\\nLowest and highest values over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    min\\n    max\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_257MINMAX = {\"MINMAX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256MINMAX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_257MINMAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MINMAX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 3969, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3969, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3969, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MINMAX\", 0) < (0)) __PYX_ERR(4, 3969, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MINMAX\", 0, 1, 2, i); __PYX_ERR(4, 3969, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3969, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3969, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3971, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MINMAX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3969, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MINMAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 3971, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_256MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outmin = 0;\n  PyArrayObject *__pyx_v_outmax = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MINMAX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3997, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3998, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmax)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4000, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4001, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmin);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmin);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(4, 4001, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmax);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmax);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(4, 4001, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MINMAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmin);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmax);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258MINMAXINDEX, \"MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMINMAXINDEX(real[, timeperiod=?])\\n\\nIndexes of lowest and highest values over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    minidx\\n    maxidx\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_259MINMAXINDEX = {\"MINMAXINDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258MINMAXINDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MINMAXINDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4003, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MINMAXINDEX\", 0) < (0)) __PYX_ERR(4, 4003, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MINMAXINDEX\", 0, 1, 2, i); __PYX_ERR(4, 4003, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4003, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4005, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MINMAXINDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4003, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MINMAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4005, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outminidx = 0;\n  PyArrayObject *__pyx_v_outmaxidx = 0;\n  int *__pyx_v_outminidx_data;\n  int __pyx_v_i;\n  int *__pyx_v_outmaxidx_data;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  npy_intp __pyx_t_3;\n  int __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MINMAXINDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4026, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4028, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4031, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4032, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4034, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx));\n\n  __pyx_t_3 = __pyx_v_length;\n  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {\n\n    __pyx_t_4 = __pyx_v_i;\n    (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx);\n  }\n\n  __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx));\n\n  __pyx_t_3 = __pyx_v_length;\n  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {\n\n    __pyx_t_4 = __pyx_v_i;\n    (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx);\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4041, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outminidx);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(4, 4041, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(4, 4041, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MINMAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outminidx);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_261MINUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260MINUS_DI, \"MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nMINUS_DI(high, low, close[, timeperiod=?])\\n\\nMinus Directional Indicator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_261MINUS_DI = {\"MINUS_DI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260MINUS_DI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_261MINUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MINUS_DI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4043, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MINUS_DI\", 0) < (0)) __PYX_ERR(4, 4043, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MINUS_DI\", 0, 3, 4, i); __PYX_ERR(4, 4043, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4043, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4045, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MINUS_DI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4043, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MINUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4045, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4045, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 4045, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_260MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MINUS_DI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4065, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4066, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4067, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4068, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4071, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4073, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MINUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_263MINUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262MINUS_DM, \"MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nMINUS_DM(high, low[, timeperiod=?])\\n\\nMinus Directional Movement (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_263MINUS_DM = {\"MINUS_DM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262MINUS_DM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_263MINUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MINUS_DM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4076, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MINUS_DM\", 0) < (0)) __PYX_ERR(4, 4076, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MINUS_DM\", 0, 2, 3, i); __PYX_ERR(4, 4076, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4076, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4078, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MINUS_DM\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4076, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MINUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4078, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4078, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_262MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MINUS_DM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4097, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4098, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4099, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4100, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4103, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4105, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MINUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_265MOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264MOM, \"MOM(ndarray real, int timeperiod=-0x80000000)\\n\\nMOM(real[, timeperiod=?])\\n\\nMomentum (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_265MOM = {\"MOM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264MOM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_265MOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MOM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4108, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4108, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4108, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MOM\", 0) < (0)) __PYX_ERR(4, 4108, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MOM\", 0, 1, 2, i); __PYX_ERR(4, 4108, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4108, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4108, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4110, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MOM\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4108, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4110, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_264MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MOM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4129, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4131, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4134, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4136, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_267MULT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266MULT, \"MULT(ndarray real0, ndarray real1)\\n\\nMULT(real0, real1)\\n\\nVector Arithmetic Mult (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_267MULT = {\"MULT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266MULT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_267MULT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"MULT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4139, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4139, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4139, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"MULT\", 0) < (0)) __PYX_ERR(4, 4139, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"MULT\", 1, 2, 2, i); __PYX_ERR(4, 4139, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4139, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4139, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"MULT\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4139, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.MULT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 4141, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 4141, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_266MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"MULT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4159, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4160, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4161, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4162, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4165, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4167, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.MULT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_269NATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268NATR, \"NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nNATR(high, low, close[, timeperiod=?])\\n\\nNormalized Average True Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_269NATR = {\"NATR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268NATR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_269NATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"NATR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4170, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"NATR\", 0) < (0)) __PYX_ERR(4, 4170, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"NATR\", 0, 3, 4, i); __PYX_ERR(4, 4170, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4170, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4172, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"NATR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4170, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.NATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4172, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4172, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 4172, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_268NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"NATR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4191, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4192, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4193, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4194, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4195, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4198, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4200, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.NATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_271OBV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270OBV, \"OBV(ndarray real, ndarray volume)\\n\\nOBV(real, volume)\\n\\nOn Balance Volume (Volume Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\n    prices: ['volume']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_271OBV = {\"OBV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270OBV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_271OBV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"OBV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4203, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4203, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4203, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"OBV\", 0) < (0)) __PYX_ERR(4, 4203, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"OBV\", 1, 2, 2, i); __PYX_ERR(4, 4203, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4203, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4203, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    __pyx_v_volume = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"OBV\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4203, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.OBV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4205, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(4, 4205, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_270OBV(__pyx_self, __pyx_v_real, __pyx_v_volume);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_270OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"OBV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4223, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4225, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4226, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4229, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4231, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.OBV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_273PLUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272PLUS_DI, \"PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nPLUS_DI(high, low, close[, timeperiod=?])\\n\\nPlus Directional Indicator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_273PLUS_DI = {\"PLUS_DI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272PLUS_DI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_273PLUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"PLUS_DI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4234, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"PLUS_DI\", 0) < (0)) __PYX_ERR(4, 4234, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"PLUS_DI\", 0, 3, 4, i); __PYX_ERR(4, 4234, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4234, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4236, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"PLUS_DI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4234, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.PLUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4236, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4236, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 4236, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_272PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PLUS_DI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4256, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4257, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4258, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4259, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4262, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4264, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.PLUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_275PLUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274PLUS_DM, \"PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nPLUS_DM(high, low[, timeperiod=?])\\n\\nPlus Directional Movement (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_275PLUS_DM = {\"PLUS_DM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274PLUS_DM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_275PLUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"PLUS_DM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4267, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"PLUS_DM\", 0) < (0)) __PYX_ERR(4, 4267, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"PLUS_DM\", 0, 2, 3, i); __PYX_ERR(4, 4267, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4267, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4269, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"PLUS_DM\", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4267, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.PLUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4269, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4269, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_274PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PLUS_DM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4288, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4290, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4291, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4294, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4296, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.PLUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_277PPO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276PPO, \"PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\\n\\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\\n\\nPercentage Price Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_277PPO = {\"PPO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276PPO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_277PPO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"PPO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4299, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"PPO\", 0) < (0)) __PYX_ERR(4, 4299, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"PPO\", 0, 1, 4, i); __PYX_ERR(4, 4299, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4299, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"PPO\", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4299, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.PPO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4301, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_276PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"PPO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4322, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4324, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4327, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4329, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.PPO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_279ROC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278ROC, \"ROC(ndarray real, int timeperiod=-0x80000000)\\n\\nROC(real[, timeperiod=?])\\n\\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_279ROC = {\"ROC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278ROC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_279ROC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ROC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4332, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4332, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4332, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ROC\", 0) < (0)) __PYX_ERR(4, 4332, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ROC\", 0, 1, 2, i); __PYX_ERR(4, 4332, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4332, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4332, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4334, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ROC\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4332, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ROC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4334, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_278ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ROC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4353, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4355, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4358, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4360, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ROC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_281ROCP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280ROCP, \"ROCP(ndarray real, int timeperiod=-0x80000000)\\n\\nROCP(real[, timeperiod=?])\\n\\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_281ROCP = {\"ROCP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280ROCP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_281ROCP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ROCP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4363, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4363, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4363, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ROCP\", 0) < (0)) __PYX_ERR(4, 4363, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ROCP\", 0, 1, 2, i); __PYX_ERR(4, 4363, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4363, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4363, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4365, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ROCP\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4363, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4365, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_280ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ROCP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4384, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4386, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4389, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4391, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_283ROCR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282ROCR, \"ROCR(ndarray real, int timeperiod=-0x80000000)\\n\\nROCR(real[, timeperiod=?])\\n\\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_283ROCR = {\"ROCR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282ROCR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_283ROCR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ROCR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4394, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4394, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4394, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ROCR\", 0) < (0)) __PYX_ERR(4, 4394, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ROCR\", 0, 1, 2, i); __PYX_ERR(4, 4394, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4394, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4394, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4396, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ROCR\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4394, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4396, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_282ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ROCR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4415, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4417, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4420, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4422, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_285ROCR100(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284ROCR100, \"ROCR100(ndarray real, int timeperiod=-0x80000000)\\n\\nROCR100(real[, timeperiod=?])\\n\\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_285ROCR100 = {\"ROCR100\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284ROCR100};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_285ROCR100(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ROCR100 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4425, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ROCR100\", 0) < (0)) __PYX_ERR(4, 4425, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ROCR100\", 0, 1, 2, i); __PYX_ERR(4, 4425, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4425, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4427, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ROCR100\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4425, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCR100\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4427, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_284ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ROCR100\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4446, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4448, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4451, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4453, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ROCR100\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_287RSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286RSI, \"RSI(ndarray real, int timeperiod=-0x80000000)\\n\\nRSI(real[, timeperiod=?])\\n\\nRelative Strength Index (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_287RSI = {\"RSI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286RSI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_287RSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"RSI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4456, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4456, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4456, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"RSI\", 0) < (0)) __PYX_ERR(4, 4456, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"RSI\", 0, 1, 2, i); __PYX_ERR(4, 4456, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4456, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4456, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4458, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"RSI\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4456, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.RSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4458, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_286RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"RSI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4477, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4479, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4482, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4484, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.RSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_289SAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288SAR, \"SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\\n\\nSAR(high, low[, acceleration=?, maximum=?])\\n\\nParabolic SAR (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    acceleration: 0.02\\n    maximum: 0.2\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_289SAR = {\"SAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288SAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_289SAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  double __pyx_v_acceleration;\n  double __pyx_v_maximum;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4487, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SAR\", 0) < (0)) __PYX_ERR(4, 4487, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SAR\", 0, 2, 4, i); __PYX_ERR(4, 4487, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4487, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4489, __pyx_L3_error)\n    } else {\n      __pyx_v_acceleration = ((double)((double)0.02));\n    }\n    if (values[3]) {\n      __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4489, __pyx_L3_error)\n    } else {\n      __pyx_v_maximum = ((double)((double)0.2));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SAR\", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4487, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4489, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4489, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_288SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4509, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4510, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4511, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4512, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4515, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4517, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_291SAREXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290SAREXT, \"SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\\n\\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\\n\\nParabolic SAR - Extended (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    startvalue: 0.0\\n    offsetonreverse: 0.0\\n    accelerationinitlong: 0.02\\n    accelerationlong: 0.02\\n    accelerationmaxlong: 0.2\\n    accelerationinitshort: 0.02\\n    accelerationshort: 0.02\\n    accelerationmaxshort: 0.2\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_291SAREXT = {\"SAREXT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290SAREXT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_291SAREXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  double __pyx_v_startvalue;\n  double __pyx_v_offsetonreverse;\n  double __pyx_v_accelerationinitlong;\n  double __pyx_v_accelerationlong;\n  double __pyx_v_accelerationmaxlong;\n  double __pyx_v_accelerationinitshort;\n  double __pyx_v_accelerationshort;\n  double __pyx_v_accelerationmaxshort;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SAREXT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4520, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case 10:\n        values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  9:\n        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SAREXT\", 0) < (0)) __PYX_ERR(4, 4520, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SAREXT\", 0, 2, 10, i); __PYX_ERR(4, 4520, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case 10:\n        values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  9:\n        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4520, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_startvalue = ((double)((double)-4e37));\n    }\n    if (values[3]) {\n      __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_offsetonreverse = ((double)((double)-4e37));\n    }\n    if (values[4]) {\n      __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationinitlong = ((double)((double)-4e37));\n    }\n    if (values[5]) {\n      __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationlong = ((double)((double)-4e37));\n    }\n    if (values[6]) {\n      __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationmaxlong = ((double)((double)-4e37));\n    }\n    if (values[7]) {\n      __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationinitshort = ((double)((double)-4e37));\n    }\n    if (values[8]) {\n      __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationshort = ((double)((double)-4e37));\n    }\n    if (values[9]) {\n      __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationmaxshort = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SAREXT\", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 4520, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SAREXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4522, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_290SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SAREXT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4548, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4549, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4550, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4551, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4554, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4556, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SAREXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_293SIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292SIN, \"SIN(ndarray real)\\n\\nSIN(real)\\n\\nVector Trigonometric Sin (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_293SIN = {\"SIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292SIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_293SIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4559, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4559, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SIN\", 0) < (0)) __PYX_ERR(4, 4559, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SIN\", 1, 1, 1, i); __PYX_ERR(4, 4559, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4559, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SIN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4559, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4561, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_292SIN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4578, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4580, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4583, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4585, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_295SINH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294SINH, \"SINH(ndarray real)\\n\\nSINH(real)\\n\\nVector Trigonometric Sinh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_295SINH = {\"SINH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294SINH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_295SINH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SINH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4588, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4588, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SINH\", 0) < (0)) __PYX_ERR(4, 4588, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SINH\", 1, 1, 1, i); __PYX_ERR(4, 4588, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4588, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SINH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4588, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SINH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4590, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_294SINH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SINH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4607, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4609, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4612, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4614, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SINH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_297SMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296SMA, \"SMA(ndarray real, int timeperiod=-0x80000000)\\n\\nSMA(real[, timeperiod=?])\\n\\nSimple Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_297SMA = {\"SMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296SMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_297SMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4617, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4617, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4617, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SMA\", 0) < (0)) __PYX_ERR(4, 4617, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SMA\", 0, 1, 2, i); __PYX_ERR(4, 4617, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4617, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4617, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4619, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4617, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4619, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_296SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4638, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4640, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4643, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4645, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_299SQRT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298SQRT, \"SQRT(ndarray real)\\n\\nSQRT(real)\\n\\nVector Square Root (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_299SQRT = {\"SQRT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298SQRT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_299SQRT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SQRT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4648, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4648, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SQRT\", 0) < (0)) __PYX_ERR(4, 4648, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SQRT\", 1, 1, 1, i); __PYX_ERR(4, 4648, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4648, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SQRT\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4648, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SQRT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4650, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_298SQRT(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SQRT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4667, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4669, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4672, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4674, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SQRT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_301STDDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300STDDEV, \"STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\\n\\nSTDDEV(real[, timeperiod=?, nbdev=?])\\n\\nStandard Deviation (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdev: 1.0\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_301STDDEV = {\"STDDEV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300STDDEV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_301STDDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdev;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"STDDEV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4677, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"STDDEV\", 0) < (0)) __PYX_ERR(4, 4677, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"STDDEV\", 0, 1, 3, i); __PYX_ERR(4, 4677, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4677, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4679, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4679, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdev = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"STDDEV\", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4677, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.STDDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4679, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_300STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"STDDEV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4699, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4701, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4704, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4706, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.STDDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_303STOCH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302STOCH, \"STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\\n\\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\\n\\nStochastic (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    fastk_period: 5\\n    slowk_period: 3\\n    slowk_matype: 0\\n    slowd_period: 3\\n    slowd_matype: 0\\nOutputs:\\n    slowk\\n    slowd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_303STOCH = {\"STOCH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302STOCH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_303STOCH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_fastk_period;\n  int __pyx_v_slowk_period;\n  int __pyx_v_slowk_matype;\n  int __pyx_v_slowd_period;\n  int __pyx_v_slowd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[8] = {0,0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"STOCH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4709, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"STOCH\", 0) < (0)) __PYX_ERR(4, 4709, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"STOCH\", 0, 3, 8, i); __PYX_ERR(4, 4709, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4709, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error)\n    } else {\n      __pyx_v_slowk_period = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error)\n    } else {\n      __pyx_v_slowk_matype = ((int)((int)0));\n    }\n    if (values[6]) {\n      __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error)\n    } else {\n      __pyx_v_slowd_period = ((int)((int)-2147483648));\n    }\n    if (values[7]) {\n      __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error)\n    } else {\n      __pyx_v_slowd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"STOCH\", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 4709, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4711, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4711, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_302STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outslowk = 0;\n  PyArrayObject *__pyx_v_outslowd = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"STOCH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4736, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4737, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4738, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4739, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4740, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4743, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4744, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowd)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4747, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outslowk);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(4, 4747, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outslowd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(4, 4747, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outslowk);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outslowd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_305STOCHF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304STOCHF, \"STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\\n\\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\\n\\nStochastic Fast (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    fastk_period: 5\\n    fastd_period: 3\\n    fastd_matype: 0\\nOutputs:\\n    fastk\\n    fastd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_305STOCHF = {\"STOCHF\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304STOCHF};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_305STOCHF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_fastk_period;\n  int __pyx_v_fastd_period;\n  int __pyx_v_fastd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"STOCHF (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4749, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"STOCHF\", 0) < (0)) __PYX_ERR(4, 4749, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"STOCHF\", 0, 3, 6, i); __PYX_ERR(4, 4749, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4749, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_period = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"STOCHF\", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 4749, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCHF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 4751, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 4751, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 4751, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_304STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outfastk = 0;\n  PyArrayObject *__pyx_v_outfastd = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"STOCHF\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4774, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4775, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4776, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4777, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4778, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4781, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4782, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4784, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4785, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outfastk);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 4785, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outfastd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 4785, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCHF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outfastk);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outfastd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_307STOCHRSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306STOCHRSI, \"STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\\n\\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\\n\\nStochastic Relative Strength Index (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\n    fastk_period: 5\\n    fastd_period: 3\\n    fastd_matype: 0\\nOutputs:\\n    fastk\\n    fastd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_307STOCHRSI = {\"STOCHRSI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306STOCHRSI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_307STOCHRSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  int __pyx_v_fastk_period;\n  int __pyx_v_fastd_period;\n  int __pyx_v_fastd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"STOCHRSI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4787, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"STOCHRSI\", 0) < (0)) __PYX_ERR(4, 4787, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"STOCHRSI\", 0, 1, 5, i); __PYX_ERR(4, 4787, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4787, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"STOCHRSI\", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 4787, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCHRSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4789, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_306STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outfastk = 0;\n  PyArrayObject *__pyx_v_outfastd = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"STOCHRSI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4813, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4815, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4818, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4819, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4821, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4822, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_INCREF((PyObject *)__pyx_v_outfastk);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 4822, __pyx_L1_error);\n  __Pyx_INCREF((PyObject *)__pyx_v_outfastd);\n  __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 4822, __pyx_L1_error);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.STOCHRSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outfastk);\n  __Pyx_XDECREF((PyObject *)__pyx_v_outfastd);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_309SUB(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308SUB, \"SUB(ndarray real0, ndarray real1)\\n\\nSUB(real0, real1)\\n\\nVector Arithmetic Subtraction (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_309SUB = {\"SUB\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308SUB};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_309SUB(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SUB (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4824, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4824, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4824, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SUB\", 0) < (0)) __PYX_ERR(4, 4824, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SUB\", 1, 2, 2, i); __PYX_ERR(4, 4824, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4824, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4824, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SUB\", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4824, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SUB\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(4, 4826, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(4, 4826, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_308SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SUB\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4844, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4845, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4846, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4847, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4850, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4852, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SUB\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_311SUM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310SUM, \"SUM(ndarray real, int timeperiod=-0x80000000)\\n\\nSUM(real[, timeperiod=?])\\n\\nSummation (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_311SUM = {\"SUM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310SUM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_311SUM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"SUM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4855, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4855, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4855, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"SUM\", 0) < (0)) __PYX_ERR(4, 4855, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"SUM\", 0, 1, 2, i); __PYX_ERR(4, 4855, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4855, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4855, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4857, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"SUM\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4855, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.SUM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4857, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_310SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"SUM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4876, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4878, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4881, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4883, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.SUM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_313T3(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312T3, \"T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\\n\\nT3(real[, timeperiod=?, vfactor=?])\\n\\nTriple Exponential Moving Average (T3) (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    vfactor: 0.7\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_313T3 = {\"T3\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312T3};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_313T3(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_vfactor;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"T3 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4886, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"T3\", 0) < (0)) __PYX_ERR(4, 4886, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"T3\", 0, 1, 3, i); __PYX_ERR(4, 4886, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4886, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4888, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4888, __pyx_L3_error)\n    } else {\n      __pyx_v_vfactor = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"T3\", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4886, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.T3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4888, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_312T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"T3\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4908, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4910, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.T3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_315TAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314TAN, \"TAN(ndarray real)\\n\\nTAN(real)\\n\\nVector Trigonometric Tan (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_315TAN = {\"TAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314TAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_315TAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4918, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4918, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TAN\", 0) < (0)) __PYX_ERR(4, 4918, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TAN\", 1, 1, 1, i); __PYX_ERR(4, 4918, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4918, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TAN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4918, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4920, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_314TAN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4937, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4939, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4942, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4944, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_317TANH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316TANH, \"TANH(ndarray real)\\n\\nTANH(real)\\n\\nVector Trigonometric Tanh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_317TANH = {\"TANH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316TANH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_317TANH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TANH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4947, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TANH\", 0) < (0)) __PYX_ERR(4, 4947, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TANH\", 1, 1, 1, i); __PYX_ERR(4, 4947, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TANH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4947, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TANH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4949, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_316TANH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TANH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4966, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4968, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4971, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4973, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TANH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_319TEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318TEMA, \"TEMA(ndarray real, int timeperiod=-0x80000000)\\n\\nTEMA(real[, timeperiod=?])\\n\\nTriple Exponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_319TEMA = {\"TEMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318TEMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_319TEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TEMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 4976, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4976, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4976, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TEMA\", 0) < (0)) __PYX_ERR(4, 4976, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TEMA\", 0, 1, 2, i); __PYX_ERR(4, 4976, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4976, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4976, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4978, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TEMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4976, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 4978, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_318TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TEMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4997, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4999, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5002, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5004, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_321TRANGE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320TRANGE, \"TRANGE(ndarray high, ndarray low, ndarray close)\\n\\nTRANGE(high, low, close)\\n\\nTrue Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_321TRANGE = {\"TRANGE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320TRANGE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_321TRANGE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TRANGE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5007, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5007, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5007, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5007, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TRANGE\", 0) < (0)) __PYX_ERR(4, 5007, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TRANGE\", 1, 3, 3, i); __PYX_ERR(4, 5007, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5007, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5007, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5007, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TRANGE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5007, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TRANGE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 5009, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 5009, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 5009, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_320TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TRANGE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5026, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5027, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5028, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5029, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5030, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5033, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5035, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TRANGE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_323TRIMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322TRIMA, \"TRIMA(ndarray real, int timeperiod=-0x80000000)\\n\\nTRIMA(real[, timeperiod=?])\\n\\nTriangular Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_323TRIMA = {\"TRIMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322TRIMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_323TRIMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TRIMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5038, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5038, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5038, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TRIMA\", 0) < (0)) __PYX_ERR(4, 5038, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TRIMA\", 0, 1, 2, i); __PYX_ERR(4, 5038, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5038, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5038, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TRIMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5038, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TRIMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_322TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TRIMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5059, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5061, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5066, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TRIMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_325TRIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324TRIX, \"TRIX(ndarray real, int timeperiod=-0x80000000)\\n\\nTRIX(real[, timeperiod=?])\\n\\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_325TRIX = {\"TRIX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324TRIX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_325TRIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TRIX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5069, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5069, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5069, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TRIX\", 0) < (0)) __PYX_ERR(4, 5069, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TRIX\", 0, 1, 2, i); __PYX_ERR(4, 5069, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5069, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5069, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5071, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TRIX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5069, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TRIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 5071, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_324TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TRIX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5090, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5092, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5095, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5097, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TRIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_327TSF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326TSF, \"TSF(ndarray real, int timeperiod=-0x80000000)\\n\\nTSF(real[, timeperiod=?])\\n\\nTime Series Forecast (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_327TSF = {\"TSF\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326TSF};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_327TSF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TSF (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5100, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5100, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5100, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TSF\", 0) < (0)) __PYX_ERR(4, 5100, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TSF\", 0, 1, 2, i); __PYX_ERR(4, 5100, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5100, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5100, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5102, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TSF\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5100, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TSF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 5102, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_326TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TSF\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5123, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5126, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5128, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TSF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_329TYPPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328TYPPRICE, \"TYPPRICE(ndarray high, ndarray low, ndarray close)\\n\\nTYPPRICE(high, low, close)\\n\\nTypical Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_329TYPPRICE = {\"TYPPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328TYPPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_329TYPPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"TYPPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5131, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"TYPPRICE\", 0) < (0)) __PYX_ERR(4, 5131, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"TYPPRICE\", 1, 3, 3, i); __PYX_ERR(4, 5131, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5131, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5131, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5131, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"TYPPRICE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5131, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.TYPPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_328TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"TYPPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5150, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5152, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5153, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5157, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5159, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.TYPPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_331ULTOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330ULTOSC, \"ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\\n\\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\\n\\nUltimate Oscillator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod1: 7\\n    timeperiod2: 14\\n    timeperiod3: 28\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_331ULTOSC = {\"ULTOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330ULTOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_331ULTOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod1;\n  int __pyx_v_timeperiod2;\n  int __pyx_v_timeperiod3;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"ULTOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5162, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"ULTOSC\", 0) < (0)) __PYX_ERR(4, 5162, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"ULTOSC\", 0, 3, 6, i); __PYX_ERR(4, 5162, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5162, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod1 = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod2 = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod3 = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"ULTOSC\", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5162, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.ULTOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 5164, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 5164, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 5164, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_330ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"ULTOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5185, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5186, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5187, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5188, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5189, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5192, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5194, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.ULTOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_333VAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332VAR, \"VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\\n\\nVAR(real[, timeperiod=?, nbdev=?])\\n\\nVariance (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdev: 1.0\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_333VAR = {\"VAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332VAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_333VAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdev;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"VAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5197, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"VAR\", 0) < (0)) __PYX_ERR(4, 5197, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"VAR\", 0, 1, 3, i); __PYX_ERR(4, 5197, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5197, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdev = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"VAR\", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5197, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.VAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 5199, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_332VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"VAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5219, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5221, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5226, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.VAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_335WCLPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334WCLPRICE, \"WCLPRICE(ndarray high, ndarray low, ndarray close)\\n\\nWCLPRICE(high, low, close)\\n\\nWeighted Close Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_335WCLPRICE = {\"WCLPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334WCLPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_335WCLPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"WCLPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5229, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5229, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5229, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5229, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"WCLPRICE\", 0) < (0)) __PYX_ERR(4, 5229, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"WCLPRICE\", 1, 3, 3, i); __PYX_ERR(4, 5229, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5229, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5229, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5229, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"WCLPRICE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5229, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.WCLPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 5231, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 5231, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 5231, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_334WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"WCLPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5248, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5249, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5250, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5251, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5252, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback());\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5257, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.WCLPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_337WILLR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336WILLR, \"WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nWILLR(high, low, close[, timeperiod=?])\\n\\nWilliams' %R (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_337WILLR = {\"WILLR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336WILLR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_337WILLR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"WILLR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5260, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"WILLR\", 0) < (0)) __PYX_ERR(4, 5260, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"WILLR\", 0, 3, 4, i); __PYX_ERR(4, 5260, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5260, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"WILLR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5260, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.WILLR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_336WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  npy_int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"WILLR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5282, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5283, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5284, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5285, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_3;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5288, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5290, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.WILLR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_339WMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338WMA, \"WMA(ndarray real, int timeperiod=-0x80000000)\\n\\nWMA(real[, timeperiod=?])\\n\\nWeighted Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_339WMA = {\"WMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338WMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_339WMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"WMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 5293, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5293, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5293, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"WMA\", 0) < (0)) __PYX_ERR(4, 5293, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"WMA\", 0, 1, 2, i); __PYX_ERR(4, 5293, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5293, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5293, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5295, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"WMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5293, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.WMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(4, 5295, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_338WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  int __pyx_v_begidx;\n  int __pyx_v_endidx;\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  PyArrayObject *__pyx_v_outreal = 0;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_int __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"WMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5314, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5316, __pyx_L1_error)\n  __pyx_v_begidx = __pyx_t_2;\n\n  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);\n\n  __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5319, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5321, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF((PyObject *)__pyx_v_outreal);\n  __pyx_r = ((PyObject *)__pyx_v_outreal);\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.WMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_341str2bytes(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340str2bytes, \"str2bytes(s)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_341str2bytes = {\"str2bytes\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340str2bytes};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_341str2bytes(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_s = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"str2bytes (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 74, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 74, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"str2bytes\", 0) < (0)) __PYX_ERR(2, 74, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"str2bytes\", 1, 1, 1, i); __PYX_ERR(2, 74, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 74, __pyx_L3_error)\n    }\n    __pyx_v_s = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"str2bytes\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 74, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.str2bytes\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_340str2bytes(__pyx_self, __pyx_v_s);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"str2bytes\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = NULL;\n  __pyx_t_3 = 1;\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 75, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.str2bytes\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_343bytes2str(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342bytes2str, \"bytes2str(b)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_343bytes2str = {\"bytes2str\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342bytes2str};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_343bytes2str(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_b = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"bytes2str (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 77, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 77, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"bytes2str\", 0) < (0)) __PYX_ERR(2, 77, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"bytes2str\", 1, 1, 1, i); __PYX_ERR(2, 77, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 77, __pyx_L3_error)\n    }\n    __pyx_v_b = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"bytes2str\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 77, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.bytes2str\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_342bytes2str(__pyx_self, __pyx_v_b);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"bytes2str\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = __pyx_v_b;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_3 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 78, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.bytes2str\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_345str2bytes(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344str2bytes, \"str2bytes(s)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_345str2bytes = {\"str2bytes\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344str2bytes};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_345str2bytes(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_s = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"str2bytes (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 82, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 82, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"str2bytes\", 0) < (0)) __PYX_ERR(2, 82, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"str2bytes\", 1, 1, 1, i); __PYX_ERR(2, 82, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 82, __pyx_L3_error)\n    }\n    __pyx_v_s = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"str2bytes\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 82, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.str2bytes\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_344str2bytes(__pyx_self, __pyx_v_s);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"str2bytes\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_s);\n  __pyx_r = __pyx_v_s;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_347bytes2str(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346bytes2str, \"bytes2str(b)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_347bytes2str = {\"bytes2str\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346bytes2str};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_347bytes2str(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_b = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"bytes2str (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 85, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 85, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"bytes2str\", 0) < (0)) __PYX_ERR(2, 85, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"bytes2str\", 1, 1, 1, i); __PYX_ERR(2, 85, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 85, __pyx_L3_error)\n    }\n    __pyx_v_b = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"bytes2str\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 85, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.bytes2str\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_346bytes2str(__pyx_self, __pyx_v_b);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"bytes2str\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_b);\n  __pyx_r = __pyx_v_b;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, \"Function.__init__(self, function_name, func_object, *args, **kwargs)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {\"__init__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_function_name = 0;\n  PyObject *__pyx_v_func_object = 0;\n  PyObject *__pyx_v_args = 0;\n  PyObject *__pyx_v_kwargs = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__init__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;\n  __Pyx_GOTREF(__pyx_v_kwargs);\n  __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs);\n  if (unlikely(!__pyx_v_args)) {\n    __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n    __Pyx_RefNannyFinishContext();\n    return NULL;\n  }\n  __Pyx_GOTREF(__pyx_v_args);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 117, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        default:\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, \"__init__\", 1) < (0)) __PYX_ERR(2, 117, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__init__\", 0, 3, 3, i); __PYX_ERR(2, 117, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs < 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 117, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 117, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 117, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_function_name = values[1];\n    __pyx_v_func_object = values[2];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__init__\", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 117, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;\n  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__init__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args);\n  __Pyx_DECREF(__pyx_v_kwargs);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__init__\", 0);\n\n  __pyx_t_2 = __pyx_v_function_name;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_3 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_2 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_3 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_2);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_2);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_3 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 121, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 121, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 124, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 124, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __pyx_t_3 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_2))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);\n    __pyx_t_3 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 124, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 124, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 127, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 127, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 127, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 128, __pyx_L1_error)\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__init__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, \"Function.__local(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {\"__local\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__local (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 130, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 130, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__local\", 0) < (0)) __PYX_ERR(2, 130, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__local\", 1, 1, 1, i); __PYX_ERR(2, 130, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 130, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__local\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 130, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__local\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_v_info = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_v_param_name = NULL;\n  PyObject *__pyx_v_output_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  int __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  size_t __pyx_t_6;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *(*__pyx_t_9)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__local\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 132, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 133, __pyx_L1_error)\n  __pyx_t_3 = (!__pyx_t_2);\n  if (__pyx_t_3) {\n\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 134, __pyx_L1_error)\n\n    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 135, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_4 = NULL;\n    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 138, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_6 = 1;\n    #if CYTHON_UNPACK_METHODS\n    if (unlikely(PyMethod_Check(__pyx_t_5))) {\n      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);\n      assert(__pyx_t_4);\n      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);\n      __Pyx_INCREF(__pyx_t_4);\n      __Pyx_INCREF(__pyx__function);\n      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);\n      __pyx_t_6 = 0;\n    }\n    #endif\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_5 = NULL;\n    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 139, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_6 = 1;\n    #if CYTHON_UNPACK_METHODS\n    if (unlikely(PyMethod_Check(__pyx_t_4))) {\n      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);\n      assert(__pyx_t_5);\n      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n      __Pyx_INCREF(__pyx_t_5);\n      __Pyx_INCREF(__pyx__function);\n      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n      __pyx_t_6 = 0;\n    }\n    #endif\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_4 = NULL;\n    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 140, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_6 = 1;\n    #if CYTHON_UNPACK_METHODS\n    if (unlikely(PyMethod_Check(__pyx_t_5))) {\n      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);\n      assert(__pyx_t_4);\n      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);\n      __Pyx_INCREF(__pyx_t_4);\n      __Pyx_INCREF(__pyx__function);\n      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);\n      __pyx_t_6 = 0;\n    }\n    #endif\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 140, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 140, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 141, __pyx_L1_error)\n\n    __pyx_t_5 = NULL;\n    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 144, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 144, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_6 = 1;\n    #if CYTHON_UNPACK_METHODS\n    if (unlikely(PyMethod_Check(__pyx_t_4))) {\n      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);\n      assert(__pyx_t_5);\n      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n      __Pyx_INCREF(__pyx_t_5);\n      __Pyx_INCREF(__pyx__function);\n      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n      __pyx_t_6 = 0;\n    }\n    #endif\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 144, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 144, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_4 = NULL;\n    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_5 = __pyx_t_8;\n    __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_6 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs};\n      __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 147, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n    }\n    __pyx_t_6 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 147, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 147, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    for (;;) {\n      {\n        __pyx_t_1 = __pyx_t_9(__pyx_t_7);\n        if (unlikely(!__pyx_t_1)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 147, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_4 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 148, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 148, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __pyx_t_6 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_8))) {\n        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);\n        assert(__pyx_t_4);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);\n        __Pyx_INCREF(__pyx_t_4);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);\n        __pyx_t_6 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i};\n        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n      }\n      __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_3 = (__pyx_t_1 == Py_None);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (__pyx_t_3) {\n\n        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 151, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_8);\n        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n        if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 151, __pyx_L1_error)\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n      }\n\n      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 152, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n    }\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 153, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 153, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 153, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n    __pyx_t_8 = NULL;\n    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_5 = __pyx_t_4;\n    __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_6 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 156, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_6 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1};\n      __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n    }\n    __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 156, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 156, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n    for (;;) {\n      {\n        __pyx_t_7 = __pyx_t_9(__pyx_t_1);\n        if (unlikely(!__pyx_t_7)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 156, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_7);\n      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7);\n      __pyx_t_7 = 0;\n\n      __pyx_t_8 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 157, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 157, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __pyx_t_6 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_4))) {\n        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);\n        assert(__pyx_t_8);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n        __Pyx_INCREF(__pyx_t_8);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n        __pyx_t_6 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i};\n        __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n        if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_7);\n      }\n      __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7);\n      __pyx_t_7 = 0;\n\n      __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n      __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7);\n      __pyx_t_7 = 0;\n\n      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n      if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 159, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 160, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 160, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 160, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_7 = NULL;\n    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 163, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_6 = 1;\n    #if CYTHON_UNPACK_METHODS\n    if (unlikely(PyMethod_Check(__pyx_t_4))) {\n      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);\n      assert(__pyx_t_7);\n      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n      __Pyx_INCREF(__pyx_t_7);\n      __Pyx_INCREF(__pyx__function);\n      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n      __pyx_t_6 = 0;\n    }\n    #endif\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 163, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 163, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_4 = NULL;\n    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_5 = __pyx_t_8;\n    __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_6 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs};\n      __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 164, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n    }\n    __pyx_t_6 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7};\n      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 164, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 164, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    for (;;) {\n      {\n        __pyx_t_1 = __pyx_t_9(__pyx_t_7);\n        if (unlikely(!__pyx_t_1)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 164, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_4 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 165, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 165, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __pyx_t_6 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_8))) {\n        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);\n        assert(__pyx_t_4);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);\n        __Pyx_INCREF(__pyx_t_4);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);\n        __pyx_t_6 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i};\n        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n      }\n      __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 167, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 167, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 167, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 168, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    }\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 169, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 169, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 169, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_local);\n  __pyx_r = __pyx_v_local;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__local\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XDECREF(__pyx_v_info);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XDECREF(__pyx_v_param_name);\n  __Pyx_XDECREF(__pyx_v_output_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, \"Function.info(self)\\n\\nReturns a copy of the function's info dict.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {\"info\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"info (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 172, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 172, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"info\", 0) < (0)) __PYX_ERR(2, 172, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"info\", 1, 1, 1, i); __PYX_ERR(2, 172, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 172, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"info\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 172, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.info\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"info\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 177, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 177, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_2 = __pyx_t_4;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 177, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.info\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, \"Function.function_flags(self)\\n\\nReturns any function flags defined for this indicator function.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {\"function_flags\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"function_flags (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 179, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 179, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"function_flags\", 0) < (0)) __PYX_ERR(2, 179, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"function_flags\", 1, 1, 1, i); __PYX_ERR(2, 179, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 179, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"function_flags\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 179, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.function_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"function_flags\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.function_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, \"Function.output_flags(self)\\n\\nReturns the flags for each output for this indicator function.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {\"output_flags\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"output_flags (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 186, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 186, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"output_flags\", 0) < (0)) __PYX_ERR(2, 186, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"output_flags\", 1, 1, 1, i); __PYX_ERR(2, 186, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 186, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"output_flags\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 186, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.output_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"output_flags\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 191, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 191, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 191, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_2 = __pyx_t_3;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 191, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.output_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, \"Function.get_input_names(self)\\n\\nReturns the dict of input price series names that specifies which\\nof the ndarrays in input_arrays will be used to calculate the function.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {\"get_input_names\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"get_input_names (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 193, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 193, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"get_input_names\", 0) < (0)) __PYX_ERR(2, 193, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"get_input_names\", 1, 1, 1, i); __PYX_ERR(2, 193, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 193, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"get_input_names\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 193, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_input_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_ret = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  Py_ssize_t __pyx_t_5;\n  PyObject *(*__pyx_t_6)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"get_input_names\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_2);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_2);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_4 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_ret = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_5 = 0;\n    __pyx_t_6 = NULL;\n  } else {\n    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 200, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 200, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_6)) {\n      if (likely(PyList_CheckExact(__pyx_t_3))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 200, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_5;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 200, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5);\n        #endif\n        ++__pyx_t_5;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_6(__pyx_t_3);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 200, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 201, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 201, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 201, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 201, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_ret);\n  __pyx_r = __pyx_v_ret;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_input_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_ret);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, \"Function.set_input_names(self, input_names)\\n\\nSets the input price series names to use.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {\"set_input_names\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_input_names = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"set_input_names (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 204, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 204, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 204, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"set_input_names\", 0) < (0)) __PYX_ERR(2, 204, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"set_input_names\", 1, 2, 2, i); __PYX_ERR(2, 204, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 204, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 204, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_input_names = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"set_input_names\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 204, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_input_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_v_price_series = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  Py_ssize_t __pyx_t_4;\n  PyObject *(*__pyx_t_5)(PyObject *);\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *(*__pyx_t_9)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"set_input_names\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_v_input_names;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_3 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 209, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 209, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_2))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 209, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 209, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_5(__pyx_t_2);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 209, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {\n      PyObject* sequence = __pyx_t_1;\n      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);\n      if (unlikely(size != 2)) {\n        if (size > 2) __Pyx_RaiseTooManyValuesError(2);\n        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);\n        __PYX_ERR(2, 209, __pyx_L1_error)\n      }\n      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n      if (likely(PyTuple_CheckExact(sequence))) {\n        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);\n        __Pyx_INCREF(__pyx_t_6);\n        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);\n        __Pyx_INCREF(__pyx_t_7);\n      } else {\n        __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 209, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_6);\n        __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_7);\n      }\n      #else\n      __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 209, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n      #endif\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    } else {\n      Py_ssize_t index = -1;\n      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 209, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8);\n      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_6);\n      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_7);\n      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 209, __pyx_L1_error)\n      __pyx_t_9 = NULL;\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      goto __pyx_L6_unpacking_done;\n      __pyx_L5_unpacking_failed:;\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __pyx_t_9 = NULL;\n      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n      __PYX_ERR(2, 209, __pyx_L1_error)\n      __pyx_L6_unpacking_done:;\n    }\n    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6);\n    __pyx_t_6 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7);\n    __pyx_t_7 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n\n    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 211, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 211, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 211, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 212, __pyx_L1_error)\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_input_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XDECREF(__pyx_v_price_series);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, \"Function.get_input_arrays(self)\\n\\nReturns a copy of the dict of input arrays in use.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {\"get_input_arrays\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"get_input_arrays (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 216, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 216, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"get_input_arrays\", 0) < (0)) __PYX_ERR(2, 216, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"get_input_arrays\", 1, 1, 1, i); __PYX_ERR(2, 216, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 216, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"get_input_arrays\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 216, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_input_arrays\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  int __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  size_t __pyx_t_6;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"get_input_arrays\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = (__pyx_t_1 != Py_None);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  if (__pyx_t_3) {\n  } else {\n    __pyx_t_2 = __pyx_t_3;\n    goto __pyx_L4_bool_binop_done;\n  }\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 222, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 222, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_2 = __pyx_t_3;\n  __pyx_L4_bool_binop_done:;\n\n  if (__pyx_t_2) {\n\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 223, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_1 = __pyx_t_5;\n    __Pyx_INCREF(__pyx_t_1);\n    __pyx_t_6 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};\n      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 223, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n    }\n    __pyx_r = __pyx_t_4;\n    __pyx_t_4 = 0;\n    goto __pyx_L0;\n\n  }\n\n  /*else*/ {\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 225, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_5 = __pyx_t_1;\n    __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_6 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};\n      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 225, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n    }\n    __pyx_r = __pyx_t_4;\n    __pyx_t_4 = 0;\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_input_arrays\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, \"Function.set_input_arrays(self, input_arrays)\\n\\nSets the dict of input_arrays to use. Returns True/False for\\nsubclasses:\\n\\nIf input_arrays is a dict with the keys open, high, low, close and\\nvolume, it is assigned as the input_array to use and this function\\nreturns True, returning False otherwise. If you implement your own\\ndata type and wish to subclass Function, you should wrap this function\\nwith an if-statement:\\n\\nclass CustomFunction(Function):\\n    def __init__(self, function_name):\\n        Function.__init__(self, function_name)\\n\\n    def set_input_arrays(self, input_data):\\n        if Function.set_input_arrays(self, input_data):\\n            return True\\n        elif isinstance(input_data, some_module.CustomDataType):\\n            input_arrays = Function.get_input_arrays(self)\\n            # convert input_data to input_arrays and then call the super\\n            Function.set_input_arrays(self, input_arrays)\\n            return True\\n        return False\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {\"set_input_arrays\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_input_arrays = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"set_input_arrays (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 227, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"set_input_arrays\", 0) < (0)) __PYX_ERR(2, 227, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"set_input_arrays\", 1, 2, 2, i); __PYX_ERR(2, 227, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 227, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 227, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_input_arrays = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"set_input_arrays\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 227, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_input_arrays\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_missing_keys = NULL;\n  PyObject *__pyx_v_key = NULL;\n  PyObject *__pyx_v_missing = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  Py_ssize_t __pyx_t_5;\n  PyObject *(*__pyx_t_6)(PyObject *);\n  int __pyx_t_7;\n  int __pyx_t_8;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *__pyx_t_10 = NULL;\n  PyObject *__pyx_t_11[4];\n  PyObject *__pyx_t_12 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"set_input_arrays\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 253, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  if (__pyx_t_2) {\n\n    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_v_missing_keys = ((PyObject*)__pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_3 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_4 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n      __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);\n      __pyx_t_5 = 0;\n      __pyx_t_6 = NULL;\n    } else {\n      __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 255, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_3);\n      __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 255, __pyx_L1_error)\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    for (;;) {\n      if (likely(!__pyx_t_6)) {\n        if (likely(PyList_CheckExact(__pyx_t_3))) {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 255, __pyx_L1_error)\n            #endif\n            if (__pyx_t_5 >= __pyx_temp) break;\n          }\n          __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);\n          ++__pyx_t_5;\n        } else {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 255, __pyx_L1_error)\n            #endif\n            if (__pyx_t_5 >= __pyx_temp) break;\n          }\n          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n          __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5));\n          #else\n          __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5);\n          #endif\n          ++__pyx_t_5;\n        }\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error)\n      } else {\n        __pyx_t_1 = __pyx_t_6(__pyx_t_3);\n        if (unlikely(!__pyx_t_1)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 255, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);\n      __pyx_t_1 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_7 = (__pyx_t_1 != Py_None);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (__pyx_t_7) {\n      } else {\n        __pyx_t_2 = __pyx_t_7;\n        goto __pyx_L7_bool_binop_done;\n      }\n\n      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 257, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __pyx_t_2 = __pyx_t_7;\n      __pyx_L7_bool_binop_done:;\n\n      if (__pyx_t_2) {\n\n        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 258, __pyx_L1_error)\n        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n        __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1);\n        __pyx_t_1 = 0;\n\n        goto __pyx_L6;\n      }\n\n      /*else*/ {\n        __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error)\n        __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 260, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1);\n        __pyx_t_1 = 0;\n      }\n      __pyx_L6:;\n\n      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 261, __pyx_L1_error)\n      if (__pyx_t_2) {\n\n        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 262, __pyx_L1_error)\n\n      }\n\n    }\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n    __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 263, __pyx_L1_error)\n    __pyx_t_2 = (__pyx_t_5 == 0);\n    if (likely(__pyx_t_2)) {\n\n      if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 264, __pyx_L1_error)\n\n      if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 265, __pyx_L1_error)\n\n      __Pyx_XDECREF(__pyx_r);\n      __Pyx_INCREF(Py_True);\n      __pyx_r = Py_True;\n      goto __pyx_L0;\n\n    }\n\n    /*else*/ {\n      __pyx_t_1 = NULL;\n\n      __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 269, __pyx_L1_error)\n      __pyx_t_2 = (__pyx_t_5 > 1);\n      if (__pyx_t_2) {\n        __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s);\n        __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s;\n      } else {\n        __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__2);\n        __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__2;\n      }\n      __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 269, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n      __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 271, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_9);\n      __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r;\n      __pyx_t_11[1] = __pyx_t_10;\n      __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_;\n      __pyx_t_11[3] = __pyx_t_9;\n\n      __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, 48 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));\n      if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 268, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_12);\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n      __pyx_t_4 = 1;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_12};\n        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n        if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 268, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_3);\n      }\n      __Pyx_Raise(__pyx_t_3, 0, 0, 0);\n      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n      __PYX_ERR(2, 268, __pyx_L1_error)\n    }\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(Py_False);\n  __pyx_r = Py_False;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_XDECREF(__pyx_t_12);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_input_arrays\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_missing_keys);\n  __Pyx_XDECREF(__pyx_v_key);\n  __Pyx_XDECREF(__pyx_v_missing);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, \"Function.get_parameters(self)\\n\\nReturns the function's optional parameters and their default values.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {\"get_parameters\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"get_parameters (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 276, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 276, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"get_parameters\", 0) < (0)) __PYX_ERR(2, 276, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"get_parameters\", 1, 1, 1, i); __PYX_ERR(2, 276, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 276, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"get_parameters\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 276, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_parameters\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_ret = NULL;\n  PyObject *__pyx_v_opt_input = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  Py_ssize_t __pyx_t_5;\n  PyObject *(*__pyx_t_6)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"get_parameters\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_2);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_2);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_4 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_ret = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_5 = 0;\n    __pyx_t_6 = NULL;\n  } else {\n    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 282, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 282, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_6)) {\n      if (likely(PyList_CheckExact(__pyx_t_3))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 282, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_5;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 282, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5);\n        #endif\n        ++__pyx_t_5;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_6(__pyx_t_3);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 282, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_2 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_4 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 283, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 283, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_ret);\n  __pyx_r = __pyx_v_ret;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.get_parameters\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_ret);\n  __Pyx_XDECREF(__pyx_v_opt_input);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, \"Function.set_parameters(self, parameters=None, **kwargs)\\n\\nSets the function parameter values.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {\"set_parameters\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_parameters = 0;\n  PyObject *__pyx_v_kwargs = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"set_parameters (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;\n  __Pyx_GOTREF(__pyx_v_kwargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 286, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 286, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 286, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, \"set_parameters\", 1) < (0)) __PYX_ERR(2, 286, __pyx_L3_error)\n      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"set_parameters\", 0, 1, 2, i); __PYX_ERR(2, 286, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 286, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 286, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_parameters = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"set_parameters\", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 286, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_parameters\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_kwargs);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_param = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  Py_ssize_t __pyx_t_5;\n  PyObject *(*__pyx_t_6)(PyObject *);\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *(*__pyx_t_10)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"set_parameters\", 0);\n  __Pyx_INCREF(__pyx_v_parameters);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 290, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 291, __pyx_L1_error)\n  if (!__pyx_t_2) {\n  } else {\n    __Pyx_INCREF(__pyx_v_parameters);\n    __pyx_t_1 = __pyx_v_parameters;\n    goto __pyx_L3_bool_binop_done;\n  }\n  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 291, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_1 = __pyx_t_3;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_L3_bool_binop_done:;\n  __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_3 = __pyx_v_parameters;\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_4 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_3 = __pyx_v_parameters;\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_4 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_5 = 0;\n    __pyx_t_6 = NULL;\n  } else {\n    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 293, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 293, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_6)) {\n      if (likely(PyList_CheckExact(__pyx_t_3))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 293, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_5;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 293, __pyx_L1_error)\n          #endif\n          if (__pyx_t_5 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5);\n        #endif\n        ++__pyx_t_5;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_6(__pyx_t_3);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 293, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {\n      PyObject* sequence = __pyx_t_1;\n      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);\n      if (unlikely(size != 2)) {\n        if (size > 2) __Pyx_RaiseTooManyValuesError(2);\n        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);\n        __PYX_ERR(2, 293, __pyx_L1_error)\n      }\n      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n      if (likely(PyTuple_CheckExact(sequence))) {\n        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);\n        __Pyx_INCREF(__pyx_t_7);\n        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1);\n        __Pyx_INCREF(__pyx_t_8);\n      } else {\n        __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 293, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_7);\n        __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 293, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_8);\n      }\n      #else\n      __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 293, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_7);\n      __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 293, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      #endif\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    } else {\n      Py_ssize_t index = -1;\n      __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 293, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_9);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9);\n      index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_7);\n      index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_8);\n      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 293, __pyx_L1_error)\n      __pyx_t_10 = NULL;\n      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n      goto __pyx_L8_unpacking_done;\n      __pyx_L7_unpacking_failed:;\n      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n      __pyx_t_10 = NULL;\n      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n      __PYX_ERR(2, 293, __pyx_L1_error)\n      __pyx_L8_unpacking_done:;\n    }\n    __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_7);\n    __pyx_t_7 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8);\n    __pyx_t_8 = 0;\n\n    __pyx_t_8 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_8);\n    __pyx_t_4 = 0;\n    {\n      PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 294, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    if (__pyx_t_2) {\n\n      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 295, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 295, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 295, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n    }\n\n  }\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 296, __pyx_L1_error)\n\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 297, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 297, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 297, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_parameters\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_param);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_parameters);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, \"Function.set_function_args(self, *args, **kwargs)\\n\\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {\"set_function_args\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_args = 0;\n  PyObject *__pyx_v_kwargs = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"set_function_args (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;\n  __Pyx_GOTREF(__pyx_v_kwargs);\n  __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs);\n  if (unlikely(!__pyx_v_args)) {\n    __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n    __Pyx_RefNannyFinishContext();\n    return NULL;\n  }\n  __Pyx_GOTREF(__pyx_v_args);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 301, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        default:\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, \"set_function_args\", 1) < (0)) __PYX_ERR(2, 301, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"set_function_args\", 0, 1, 1, i); __PYX_ERR(2, 301, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs < 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"set_function_args\", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 301, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;\n  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_function_args\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args);\n  __Pyx_DECREF(__pyx_v_kwargs);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {\n  PyObject *__pyx_v_local = NULL;\n  int __pyx_v_update_info;\n  PyObject *__pyx_v_key = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_v_skip_first = NULL;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_v_param_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  Py_ssize_t __pyx_t_2;\n  Py_ssize_t __pyx_t_3;\n  int __pyx_t_4;\n  PyObject *__pyx_t_5 = NULL;\n  int __pyx_t_6;\n  int __pyx_t_7;\n  PyObject *__pyx_t_8 = NULL;\n  size_t __pyx_t_9;\n  PyObject *__pyx_t_10 = NULL;\n  PyObject *(*__pyx_t_11)(PyObject *);\n  int __pyx_t_12;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"set_function_args\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 305, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_v_update_info = 0;\n\n  __pyx_t_2 = 0;\n  __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_1);\n  __pyx_t_1 = __pyx_t_5;\n  __pyx_t_5 = 0;\n  while (1) {\n    __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4);\n    if (unlikely(__pyx_t_6 == 0)) break;\n    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 308, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5);\n    __pyx_t_5 = 0;\n\n    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 309, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (__pyx_t_7) {\n\n      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);\n      __pyx_t_5 = 0;\n\n      __pyx_t_8 = __pyx_v_self;\n      __Pyx_INCREF(__pyx_t_8);\n      __pyx_t_9 = 0;\n      {\n        PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value};\n        __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n        if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_5);\n      }\n      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 311, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      if (__pyx_t_7) {\n\n        __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 312, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_5);\n        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 312, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_8);\n        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 312, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_10);\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 312, __pyx_L1_error)\n        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n        __pyx_v_update_info = 1;\n\n      }\n\n      goto __pyx_L5;\n    }\n\n    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 314, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (__pyx_t_7) {\n\n      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 316, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 316, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 316, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 316, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n    }\n    __pyx_L5:;\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  {\n    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args);\n    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 318, __pyx_L1_error)\n    __pyx_t_7 = (__pyx_temp != 0);\n  }\n\n  if (__pyx_t_7) {\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n    __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0;\n\n    __pyx_t_5 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 320, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_10);\n    __pyx_t_9 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 320, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 320, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    if (__pyx_t_7) {\n\n      __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);\n      __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1);\n\n    }\n\n    __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 322, __pyx_L1_error)\n    __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_v_skip_first, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 322, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n    if (__pyx_t_7) {\n\n      __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n      __pyx_t_10 = __pyx_mstate_global->__pyx_int_0;\n      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n        __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5);\n        __pyx_t_3 = 0;\n        __pyx_t_11 = NULL;\n      } else {\n        __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 323, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_5);\n        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 323, __pyx_L1_error)\n      }\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      for (;;) {\n        if (likely(!__pyx_t_11)) {\n          if (likely(PyList_CheckExact(__pyx_t_5))) {\n            {\n              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);\n              #if !CYTHON_ASSUME_SAFE_SIZE\n              if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error)\n              #endif\n              if (__pyx_t_3 >= __pyx_temp) break;\n            }\n            __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);\n            ++__pyx_t_3;\n          } else {\n            {\n              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);\n              #if !CYTHON_ASSUME_SAFE_SIZE\n              if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error)\n              #endif\n              if (__pyx_t_3 >= __pyx_temp) break;\n            }\n            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n            __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3));\n            #else\n            __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3);\n            #endif\n            ++__pyx_t_3;\n          }\n          if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error)\n        } else {\n          __pyx_t_1 = __pyx_t_11(__pyx_t_5);\n          if (unlikely(!__pyx_t_1)) {\n            PyObject* exc_type = PyErr_Occurred();\n            if (exc_type) {\n              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 323, __pyx_L1_error)\n              PyErr_Clear();\n            }\n            break;\n          }\n        }\n        __Pyx_GOTREF(__pyx_t_1);\n        __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1);\n        __pyx_t_1 = 0;\n        __Pyx_INCREF(__pyx_t_10);\n        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_10);\n        __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_t_10, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __Pyx_DECREF(__pyx_t_10);\n        __pyx_t_10 = __pyx_t_1;\n        __pyx_t_1 = 0;\n\n        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 324, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);\n        __pyx_t_1 = 0;\n\n        __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 325, __pyx_L1_error)\n        __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 325, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __pyx_t_8 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error)\n        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 325, __pyx_L1_error)\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        if (__pyx_t_7) {\n\n          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 326, __pyx_L1_error)\n          __Pyx_GOTREF(__pyx_t_8);\n          __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8);\n          __pyx_t_8 = 0;\n\n          __pyx_t_1 = __pyx_v_self;\n          __Pyx_INCREF(__pyx_t_1);\n          __pyx_t_9 = 0;\n          {\n            PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_param_name, __pyx_v_value};\n            __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n            if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 327, __pyx_L1_error)\n            __Pyx_GOTREF(__pyx_t_8);\n          }\n          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 327, __pyx_L1_error)\n          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n          if (__pyx_t_7) {\n\n            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 328, __pyx_L1_error)\n            __Pyx_GOTREF(__pyx_t_8);\n            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 328, __pyx_L1_error)\n            __Pyx_GOTREF(__pyx_t_1);\n            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n            if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 328, __pyx_L1_error)\n            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n            __pyx_v_update_info = 1;\n\n          }\n\n        }\n\n      }\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n\n    }\n\n  }\n\n  {\n    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args);\n    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error)\n    __pyx_t_12 = (__pyx_temp != 0);\n  }\n\n  if (!__pyx_t_12) {\n  } else {\n    __pyx_t_7 = __pyx_t_12;\n    goto __pyx_L16_bool_binop_done;\n  }\n  __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 331, __pyx_L1_error)\n  __pyx_t_7 = __pyx_t_12;\n  __pyx_L16_bool_binop_done:;\n  if (__pyx_t_7) {\n\n    if (__pyx_v_update_info) {\n\n      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 333, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 333, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_5);\n      if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_10) < 0))) __PYX_ERR(2, 333, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n\n    }\n\n    if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 334, __pyx_L1_error)\n\n  }\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.set_function_args\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_key);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_skip_first);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XDECREF(__pyx_v_param_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, \"Function.lookback(self)\\n\\nReturns the lookback window size for the function with the parameter\\nvalues that are currently set.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {\"lookback\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"lookback (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 336, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"lookback\", 0) < (0)) __PYX_ERR(2, 336, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"lookback\", 1, 1, 1, i); __PYX_ERR(2, 336, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"lookback\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 336, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.lookback\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  TA_ParamHolder *__pyx_v_holder;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_v_opt_input = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_v_type_ = NULL;\n  int __pyx_v_lookback;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  char *__pyx_t_2;\n  TA_ParamHolder *__pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  Py_ssize_t __pyx_t_6;\n  PyObject *(*__pyx_t_7)(PyObject *);\n  PyObject *__pyx_t_8 = NULL;\n  size_t __pyx_t_9;\n  int __pyx_t_10;\n  int __pyx_t_11;\n  int __pyx_t_12;\n  double __pyx_t_13;\n  int __pyx_t_14;\n  int __pyx_t_15;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"lookback\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 342, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 344, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error)\n  __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_v_holder = __pyx_t_3;\n\n  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n  __pyx_t_1 = __pyx_mstate_global->__pyx_int_0;\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {\n    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5);\n    __pyx_t_6 = 0;\n    __pyx_t_7 = NULL;\n  } else {\n    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 345, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 345, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_7)) {\n      if (likely(PyList_CheckExact(__pyx_t_5))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_6;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6));\n        #else\n        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6);\n        #endif\n        ++__pyx_t_6;\n      }\n      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error)\n    } else {\n      __pyx_t_4 = __pyx_t_7(__pyx_t_5);\n      if (unlikely(!__pyx_t_4)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 345, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4);\n    __pyx_t_4 = 0;\n    __Pyx_INCREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);\n    __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_DECREF(__pyx_t_1);\n    __pyx_t_1 = __pyx_t_4;\n    __pyx_t_4 = 0;\n\n    __pyx_t_8 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_8);\n    __pyx_t_9 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input};\n      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n    }\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4);\n    __pyx_t_4 = 0;\n\n    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4);\n    __pyx_t_4 = 0;\n\n    __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (!__pyx_t_11) {\n    } else {\n      __pyx_t_10 = __pyx_t_11;\n      goto __pyx_L6_bool_binop_done;\n    }\n    __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_10 = __pyx_t_11;\n    __pyx_L6_bool_binop_done:;\n    if (__pyx_t_10) {\n\n      __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error)\n      __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error)\n      __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error)\n\n      goto __pyx_L5;\n    }\n\n    __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (!__pyx_t_11) {\n    } else {\n      __pyx_t_10 = __pyx_t_11;\n      goto __pyx_L8_bool_binop_done;\n    }\n    __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_10 = __pyx_t_11;\n    __pyx_L8_bool_binop_done:;\n    if (__pyx_t_10) {\n\n      __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error)\n      __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error)\n      __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error)\n\n    }\n    __pyx_L5:;\n\n  }\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 353, __pyx_L1_error)\n  __pyx_v_lookback = __pyx_t_15;\n\n  __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L1_error)\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 355, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.lookback\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XDECREF(__pyx_v_opt_input);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_type_);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, \"Function.output_names(self)\\n\\nReturns a list of the output names returned by this function.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {\"output_names\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"output_names (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 357, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 357, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"output_names\", 0) < (0)) __PYX_ERR(2, 357, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"output_names\", 1, 1, 1, i); __PYX_ERR(2, 357, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 357, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"output_names\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 357, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.output_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_ret = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  int __pyx_t_6;\n  int __pyx_t_7;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"output_names\", 0);\n\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 362, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 362, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_2 = __pyx_t_4;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 362, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_ret = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_6 = PyList_Check(__pyx_v_ret); \n  __pyx_t_7 = (!__pyx_t_6);\n  if (__pyx_t_7) {\n\n    __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 364, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_ret);\n  __pyx_r = __pyx_v_ret;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.output_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_ret);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, \"Function.outputs(self)\\n\\nReturns the TA function values for the currently set input_arrays and\\nparameters. Returned values are a ndarray if there is only one output\\nor a list of ndarrays for more than one output.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {\"outputs\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"outputs (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 367, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 367, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"outputs\", 0) < (0)) __PYX_ERR(2, 367, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"outputs\", 1, 1, 1, i); __PYX_ERR(2, 367, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 367, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"outputs\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 367, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.outputs\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_ret = NULL;\n  PyObject *__pyx_v_index = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  int __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  PyObject *__pyx_t_6 = NULL;\n  Py_ssize_t __pyx_t_7;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *__pyx_t_10 = NULL;\n  PyObject *__pyx_t_11 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"outputs\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 375, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_3 = (!__pyx_t_2);\n  if (__pyx_t_3) {\n\n    __pyx_t_4 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_4);\n    __pyx_t_5 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  }\n\n  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 377, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_4 = __pyx_t_6;\n  __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_ret = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_3 = PyList_Check(__pyx_v_ret); \n  __pyx_t_2 = (!__pyx_t_3);\n  if (__pyx_t_2) {\n\n    __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n  }\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = (__pyx_t_1 != Py_None);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  if (__pyx_t_3) {\n  } else {\n    __pyx_t_2 = __pyx_t_3;\n    goto __pyx_L6_bool_binop_done;\n  }\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 381, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 381, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_2 = __pyx_t_3;\n  __pyx_L6_bool_binop_done:;\n\n  if (__pyx_t_2) {\n\n    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 382, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 382, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_v_index = __pyx_t_1;\n    __pyx_t_1 = 0;\n\n    __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 383, __pyx_L1_error)\n    __pyx_t_2 = (__pyx_t_7 == 1);\n    if (__pyx_t_2) {\n\n      __Pyx_XDECREF(__pyx_r);\n      __pyx_t_6 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 384, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 384, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_4))) {\n        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);\n        assert(__pyx_t_6);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n        __Pyx_INCREF(__pyx_t_6);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_8};\n        __pyx_t_9 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 384, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_9);\n        if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_9, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 384, __pyx_L1_error)\n        __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9);\n        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n      }\n      __pyx_r = __pyx_t_1;\n      __pyx_t_1 = 0;\n      goto __pyx_L0;\n\n    }\n\n    /*else*/ {\n      __Pyx_XDECREF(__pyx_r);\n      __pyx_t_4 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_9);\n      __pyx_t_6 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 386, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 386, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_11);\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_11))) {\n        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11);\n        assert(__pyx_t_6);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);\n        __Pyx_INCREF(__pyx_t_6);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret};\n        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n        if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 386, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_8);\n      }\n\n      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 388, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_11);\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_9))) {\n        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);\n        assert(__pyx_t_4);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);\n        __Pyx_INCREF(__pyx_t_4);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_4, __pyx_t_8};\n        __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 386, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_6);\n        if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_6, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 386, __pyx_L1_error)\n        if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_columns, __pyx_t_11, __pyx_t_6, __pyx_callargs+2, 1) < (0)) __PYX_ERR(2, 386, __pyx_L1_error)\n        __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);\n        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 386, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n      }\n      __pyx_r = __pyx_t_1;\n      __pyx_t_1 = 0;\n      goto __pyx_L0;\n    }\n\n  }\n\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 389, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = (__pyx_t_1 != Py_None);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  if (__pyx_t_3) {\n  } else {\n    __pyx_t_2 = __pyx_t_3;\n    goto __pyx_L9_bool_binop_done;\n  }\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 390, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 390, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_9);\n  __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 390, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n  __pyx_t_2 = __pyx_t_3;\n  __pyx_L9_bool_binop_done:;\n\n  if (__pyx_t_2) {\n\n    __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 391, __pyx_L1_error)\n    __pyx_t_2 = (__pyx_t_7 == 1);\n    if (__pyx_t_2) {\n\n      __Pyx_XDECREF(__pyx_r);\n      __pyx_t_1 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 392, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 392, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_11);\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_6))) {\n        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);\n        assert(__pyx_t_1);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);\n        __Pyx_INCREF(__pyx_t_1);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11};\n        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n        if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 392, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_9);\n      }\n      __pyx_r = __pyx_t_9;\n      __pyx_t_9 = 0;\n      goto __pyx_L0;\n\n    }\n\n    /*else*/ {\n      __Pyx_XDECREF(__pyx_r);\n      __pyx_t_6 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 394, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_11);\n      __pyx_t_8 = NULL;\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 394, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 394, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_10))) {\n        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10);\n        assert(__pyx_t_8);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);\n        __Pyx_INCREF(__pyx_t_8);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret};\n        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 394, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n      }\n\n      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 395, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __pyx_t_5 = 1;\n      #if CYTHON_UNPACK_METHODS\n      if (unlikely(PyMethod_Check(__pyx_t_11))) {\n        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11);\n        assert(__pyx_t_6);\n        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);\n        __Pyx_INCREF(__pyx_t_6);\n        __Pyx_INCREF(__pyx__function);\n        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);\n        __pyx_t_5 = 0;\n      }\n      #endif\n      {\n        PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_1};\n        __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 394, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_8);\n        if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_t_10, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 394, __pyx_L1_error)\n        __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);\n        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n        if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 394, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_9);\n      }\n      __pyx_r = __pyx_t_9;\n      __pyx_t_9 = 0;\n      goto __pyx_L0;\n    }\n\n  }\n\n  /*else*/ {\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 397, __pyx_L1_error)\n    __pyx_t_2 = (__pyx_t_7 == 1);\n    if (__pyx_t_2) {\n      __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 397, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_11);\n      __pyx_t_9 = __pyx_t_11;\n      __pyx_t_11 = 0;\n    } else {\n      __Pyx_INCREF(__pyx_v_ret);\n      __pyx_t_9 = __pyx_v_ret;\n    }\n    __pyx_r = __pyx_t_9;\n    __pyx_t_9 = 0;\n    goto __pyx_L0;\n  }\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_XDECREF(__pyx_t_11);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.outputs\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_ret);\n  __Pyx_XDECREF(__pyx_v_index);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, \"Function.run(self, input_arrays=None)\\n\\nrun([input_arrays=None])\\n\\nThis is a shortcut to the outputs property that also allows setting\\nthe input_arrays dict.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {\"run\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_input_arrays = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"run (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 399, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 399, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 399, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"run\", 0) < (0)) __PYX_ERR(2, 399, __pyx_L3_error)\n      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"run\", 0, 1, 2, i); __PYX_ERR(2, 399, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 399, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 399, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_input_arrays = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"run\", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 399, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.run\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  int __pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  size_t __pyx_t_4;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"run\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 406, __pyx_L1_error)\n  if (__pyx_t_1) {\n\n    __pyx_t_3 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_4 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays};\n      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 407, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  }\n\n  __pyx_t_3 = __pyx_v_self;\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_4 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.run\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, \"Function.__call__(self, *args, **kwargs)\\n\\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\\n\\nThis is a shortcut to the outputs property that also allows setting\\nthe input_arrays dict and function parameters.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {\"__call__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_args = 0;\n  PyObject *__pyx_v_kwargs = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__call__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;\n  __Pyx_GOTREF(__pyx_v_kwargs);\n  __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs);\n  if (unlikely(!__pyx_v_args)) {\n    __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n    __Pyx_RefNannyFinishContext();\n    return NULL;\n  }\n  __Pyx_GOTREF(__pyx_v_args);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 411, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        default:\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 411, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, \"__call__\", 1) < (0)) __PYX_ERR(2, 411, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__call__\", 0, 1, 1, i); __PYX_ERR(2, 411, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs < 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 411, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__call__\", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 411, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;\n  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__call__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_DECREF(__pyx_v_args);\n  __Pyx_DECREF(__pyx_v_kwargs);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_opt_input_values = NULL;\n  PyObject *__pyx_v_price_series_name_values = NULL;\n  PyObject *__pyx_v_input_arrays = NULL;\n  PyObject *__pyx_v_input_price_series_names = NULL;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_v_arg = NULL;\n  PyObject *__pyx_v_msg = NULL;\n  PyObject *__pyx_v_no_existing_input_arrays = NULL;\n  PyObject *__pyx_v_param_name = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_v_n = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  Py_ssize_t __pyx_t_6;\n  PyObject *(*__pyx_t_7)(PyObject *);\n  int __pyx_t_8;\n  int __pyx_t_9;\n  int __pyx_t_10;\n  PyObject *__pyx_t_11 = NULL;\n  PyObject *__pyx_t_12 = NULL;\n  PyObject *__pyx_t_13 = NULL;\n  int __pyx_t_14;\n  PyObject *__pyx_t_15 = NULL;\n  Py_ssize_t __pyx_t_16;\n  PyObject *__pyx_t_17 = NULL;\n  PyObject *__pyx_t_18 = NULL;\n  PyObject *__pyx_t_19[5];\n  PyObject *__pyx_t_20 = NULL;\n  PyObject *(*__pyx_t_21)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__call__\", 0);\n  __Pyx_INCREF(__pyx_v_args);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 418, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 420, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __pyx_t_4;\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {\n    __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4);\n    __pyx_t_6 = 0;\n    __pyx_t_7 = NULL;\n  } else {\n    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 421, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_7)) {\n      if (likely(PyList_CheckExact(__pyx_t_4))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 421, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_6;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 421, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6));\n        #else\n        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6);\n        #endif\n        ++__pyx_t_6;\n      }\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error)\n    } else {\n      __pyx_t_2 = __pyx_t_7(__pyx_t_4);\n      if (unlikely(!__pyx_t_2)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 421, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2);\n    __pyx_t_2 = 0;\n\n    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_INCREF(__pyx_v_param_name);\n    __Pyx_GIVEREF(__pyx_v_param_name);\n    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 420, __pyx_L1_error);\n    __Pyx_GIVEREF(__pyx_t_2);\n    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 420, __pyx_L1_error);\n    __pyx_t_2 = 0;\n    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 420, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 422, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {\n    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_6 = 0;\n    __pyx_t_7 = NULL;\n  } else {\n    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 423, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_7)) {\n      if (likely(PyList_CheckExact(__pyx_t_3))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_6;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error)\n          #endif\n          if (__pyx_t_6 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6));\n        #else\n        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6);\n        #endif\n        ++__pyx_t_6;\n      }\n      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error)\n    } else {\n      __pyx_t_4 = __pyx_t_7(__pyx_t_3);\n      if (unlikely(!__pyx_t_4)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 423, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4);\n    __pyx_t_4 = 0;\n\n    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_INCREF(__pyx_v_n);\n    __Pyx_GIVEREF(__pyx_v_n);\n    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 422, __pyx_L1_error);\n    __Pyx_GIVEREF(__pyx_t_4);\n    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 422, __pyx_L1_error);\n    __pyx_t_4 = 0;\n    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 422, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 426, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 427, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_input_arrays = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_3 = __pyx_v_self;\n  __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_input_price_series_names = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 429, __pyx_L1_error)\n  if (__pyx_t_9) {\n  } else {\n    __pyx_t_8 = __pyx_t_9;\n    goto __pyx_L10_bool_binop_done;\n  }\n  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 429, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 429, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_10 = (!__pyx_t_9);\n  __pyx_t_8 = __pyx_t_10;\n  __pyx_L10_bool_binop_done:;\n  if (__pyx_t_8) {\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n    __pyx_t_3 = __pyx_mstate_global->__pyx_int_0;\n    if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) {\n      __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1);\n      __pyx_t_6 = 0;\n      __pyx_t_7 = NULL;\n    } else {\n      __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 430, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 430, __pyx_L1_error)\n    }\n    for (;;) {\n      if (likely(!__pyx_t_7)) {\n        if (likely(PyList_CheckExact(__pyx_t_1))) {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 430, __pyx_L1_error)\n            #endif\n            if (__pyx_t_6 >= __pyx_temp) break;\n          }\n          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);\n          ++__pyx_t_6;\n        } else {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 430, __pyx_L1_error)\n            #endif\n            if (__pyx_t_6 >= __pyx_temp) break;\n          }\n          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6));\n          #else\n          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6);\n          #endif\n          ++__pyx_t_6;\n        }\n        if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error)\n      } else {\n        __pyx_t_2 = __pyx_t_7(__pyx_t_1);\n        if (unlikely(!__pyx_t_2)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 430, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2);\n      __pyx_t_2 = 0;\n      __Pyx_INCREF(__pyx_t_3);\n      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);\n      __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_DECREF(__pyx_t_3);\n      __pyx_t_3 = __pyx_t_2;\n      __pyx_t_2 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 431, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 431, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n      __pyx_t_10 = (!__pyx_t_8);\n      if (__pyx_t_10) {\n\n        goto __pyx_L13_break;\n\n      }\n\n      {\n        __Pyx_PyThreadState_declare\n        __Pyx_PyThreadState_assign\n        __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);\n        __Pyx_XGOTREF(__pyx_t_11);\n        __Pyx_XGOTREF(__pyx_t_12);\n        __Pyx_XGOTREF(__pyx_t_13);\n        /*try:*/ {\n\n          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 435, __pyx_L15_error)\n          __Pyx_GOTREF(__pyx_t_2);\n          if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 435, __pyx_L15_error)\n          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n        }\n        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n        goto __pyx_L22_try_end;\n        __pyx_L15_error:;\n        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n        __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));\n        if (__pyx_t_14) {\n          __Pyx_AddTraceback(\"talib._ta_lib.Function.__call__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 436, __pyx_L17_except_error)\n          __Pyx_XGOTREF(__pyx_t_2);\n          __Pyx_XGOTREF(__pyx_t_4);\n          __Pyx_XGOTREF(__pyx_t_15);\n\n          __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 438, __pyx_L17_except_error)\n          __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 438, __pyx_L17_except_error)\n          __Pyx_GOTREF(__pyx_t_17);\n\n          __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 439, __pyx_L17_except_error)\n          __Pyx_GOTREF(__pyx_t_18);\n          __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte;\n          __pyx_t_19[1] = __pyx_t_17;\n          __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4;\n          __pyx_t_19[3] = __pyx_t_18;\n          __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5;\n\n          __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 35 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_18) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_18));\n          if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 437, __pyx_L17_except_error)\n          __Pyx_GOTREF(__pyx_t_20);\n          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;\n          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;\n          __pyx_v_msg = ((PyObject*)__pyx_t_20);\n          __pyx_t_20 = 0;\n\n          __pyx_t_18 = NULL;\n          __pyx_t_5 = 1;\n          {\n            PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg};\n            __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;\n            if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 440, __pyx_L17_except_error)\n            __Pyx_GOTREF(__pyx_t_20);\n          }\n          __Pyx_Raise(__pyx_t_20, 0, 0, 0);\n          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n          __PYX_ERR(2, 440, __pyx_L17_except_error)\n        }\n        goto __pyx_L17_except_error;\n\n        __pyx_L17_except_error:;\n        __Pyx_XGIVEREF(__pyx_t_11);\n        __Pyx_XGIVEREF(__pyx_t_12);\n        __Pyx_XGIVEREF(__pyx_t_13);\n        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);\n        goto __pyx_L1_error;\n        __pyx_L22_try_end:;\n      }\n\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    goto __pyx_L25_for_end;\n    __pyx_L13_break:;\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    goto __pyx_L25_for_end;\n    __pyx_L25_for_end:;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  }\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 442, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_8 = (__pyx_t_3 != Py_None);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (__pyx_t_8) {\n  } else {\n    __pyx_t_10 = __pyx_t_8;\n    goto __pyx_L27_bool_binop_done;\n  }\n\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 443, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 443, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 443, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_10 = __pyx_t_8;\n  __pyx_L27_bool_binop_done:;\n\n  if (__pyx_t_10) {\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 444, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_v_no_existing_input_arrays = __pyx_t_3;\n    __pyx_t_3 = 0;\n\n    goto __pyx_L26;\n  }\n\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_8 = (__pyx_t_3 != Py_None);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (__pyx_t_8) {\n  } else {\n    __pyx_t_10 = __pyx_t_8;\n    goto __pyx_L29_bool_binop_done;\n  }\n\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 446, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 446, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_10 = __pyx_t_8;\n  __pyx_L29_bool_binop_done:;\n\n  if (__pyx_t_10) {\n\n    __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 447, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n    __pyx_t_3 = __pyx_t_15;\n    __Pyx_INCREF(__pyx_t_3);\n    __pyx_t_5 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __pyx_v_no_existing_input_arrays = __pyx_t_1;\n    __pyx_t_1 = 0;\n\n    goto __pyx_L26;\n  }\n\n  /*else*/ {\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 449, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_v_no_existing_input_arrays = __pyx_t_1;\n    __pyx_t_1 = 0;\n  }\n  __pyx_L26:;\n\n  __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 451, __pyx_L1_error)\n  __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 451, __pyx_L1_error)\n  __pyx_t_10 = (__pyx_t_6 == __pyx_t_16);\n  if (__pyx_t_10) {\n\n    __pyx_t_15 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_15);\n    __pyx_t_5 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 452, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error)\n    __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 453, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    goto __pyx_L31;\n  }\n\n  __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 454, __pyx_L1_error)\n  __pyx_t_8 = (__pyx_t_16 != 0);\n  if (!__pyx_t_8) {\n  } else {\n    __pyx_t_10 = __pyx_t_8;\n    goto __pyx_L32_bool_binop_done;\n  }\n  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 454, __pyx_L1_error)\n  if (__pyx_t_8) {\n  } else {\n    __pyx_t_10 = __pyx_t_8;\n    goto __pyx_L32_bool_binop_done;\n  }\n\n  __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 455, __pyx_L1_error)\n  __pyx_t_8 = (!(__pyx_t_16 != 0));\n  if (!__pyx_t_8) {\n  } else {\n    __pyx_t_10 = __pyx_t_8;\n    goto __pyx_L32_bool_binop_done;\n  }\n  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 455, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 455, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 455, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __pyx_t_9 = (!__pyx_t_8);\n  __pyx_t_10 = __pyx_t_9;\n  __pyx_L32_bool_binop_done:;\n\n  if (unlikely(__pyx_t_10)) {\n\n    __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 457, __pyx_L1_error)\n    __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 457, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n\n    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 458, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec;\n    __pyx_t_19[1] = __pyx_t_15;\n    __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4;\n    __pyx_t_19[3] = __pyx_t_1;\n    __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5;\n\n    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 456, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_v_msg = ((PyObject*)__pyx_t_3);\n    __pyx_t_3 = 0;\n\n    __pyx_t_1 = NULL;\n    __pyx_t_5 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg};\n      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 459, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_3);\n    }\n    __Pyx_Raise(__pyx_t_3, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __PYX_ERR(2, 459, __pyx_L1_error)\n\n  }\n  __pyx_L31:;\n\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 461, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 461, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 461, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_15 = __pyx_v_self;\n  __Pyx_INCREF(__pyx_t_15);\n  __pyx_t_5 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL};\n    __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 462, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_16 = 0;\n  for (;;) {\n    {\n      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);\n      #if !CYTHON_ASSUME_SAFE_SIZE\n      if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 465, __pyx_L1_error)\n      #endif\n      if (__pyx_t_16 >= __pyx_temp) break;\n    }\n    __pyx_t_15 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference);\n    ++__pyx_t_16;\n    if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 465, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n    if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) {\n      PyObject* sequence = __pyx_t_15;\n      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);\n      if (unlikely(size != 2)) {\n        if (size > 2) __Pyx_RaiseTooManyValuesError(2);\n        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);\n        __PYX_ERR(2, 465, __pyx_L1_error)\n      }\n      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n      if (likely(PyTuple_CheckExact(sequence))) {\n        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);\n        __Pyx_INCREF(__pyx_t_1);\n        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);\n        __Pyx_INCREF(__pyx_t_3);\n      } else {\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 465, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_1);\n        __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_3);\n      }\n      #else\n      __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 465, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_3);\n      #endif\n      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    } else {\n      Py_ssize_t index = -1;\n      __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 465, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n      __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2);\n      index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_1);\n      index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_3);\n      if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)\n      __pyx_t_21 = NULL;\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n      goto __pyx_L39_unpacking_done;\n      __pyx_L38_unpacking_failed:;\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n      __pyx_t_21 = NULL;\n      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n      __PYX_ERR(2, 465, __pyx_L1_error)\n      __pyx_L39_unpacking_done:;\n    }\n    __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1);\n    __pyx_t_1 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3);\n    __pyx_t_3 = 0;\n\n    __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 466, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 466, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 467, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 467, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 467, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_16 = 0;\n  for (;;) {\n    {\n      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);\n      #if !CYTHON_ASSUME_SAFE_SIZE\n      if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 470, __pyx_L1_error)\n      #endif\n      if (__pyx_t_16 >= __pyx_temp) break;\n    }\n    __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference);\n    ++__pyx_t_16;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {\n      PyObject* sequence = __pyx_t_3;\n      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);\n      if (unlikely(size != 2)) {\n        if (size > 2) __Pyx_RaiseTooManyValuesError(2);\n        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);\n        __PYX_ERR(2, 470, __pyx_L1_error)\n      }\n      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n      if (likely(PyTuple_CheckExact(sequence))) {\n        __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0);\n        __Pyx_INCREF(__pyx_t_15);\n        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);\n        __Pyx_INCREF(__pyx_t_1);\n      } else {\n        __pyx_t_15 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_15);\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);\n        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error)\n        __Pyx_XGOTREF(__pyx_t_1);\n      }\n      #else\n      __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_15);\n      __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      #endif\n      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    } else {\n      Py_ssize_t index = -1;\n      __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 470, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n      __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2);\n      index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_15);\n      index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L43_unpacking_failed;\n      __Pyx_GOTREF(__pyx_t_1);\n      if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 470, __pyx_L1_error)\n      __pyx_t_21 = NULL;\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n      goto __pyx_L44_unpacking_done;\n      __pyx_L43_unpacking_failed:;\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n      __pyx_t_21 = NULL;\n      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n      __PYX_ERR(2, 470, __pyx_L1_error)\n      __pyx_L44_unpacking_done:;\n    }\n    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15);\n    __pyx_t_15 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 471, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 472, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 472, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 472, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 474, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_15);\n  __Pyx_XDECREF(__pyx_t_17);\n  __Pyx_XDECREF(__pyx_t_18);\n  __Pyx_XDECREF(__pyx_t_20);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__call__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_args);\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_opt_input_values);\n  __Pyx_XDECREF(__pyx_v_price_series_name_values);\n  __Pyx_XDECREF(__pyx_v_input_arrays);\n  __Pyx_XDECREF(__pyx_v_input_price_series_names);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XDECREF(__pyx_v_arg);\n  __Pyx_XDECREF(__pyx_v_msg);\n  __Pyx_XDECREF(__pyx_v_no_existing_input_arrays);\n  __Pyx_XDECREF(__pyx_v_param_name);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XDECREF(__pyx_v_n);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, \"Function.__input_price_series_names(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {\"__input_price_series_names\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__input_price_series_names (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 477, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 477, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__input_price_series_names\", 0) < (0)) __PYX_ERR(2, 477, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__input_price_series_names\", 1, 1, 1, i); __PYX_ERR(2, 477, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 477, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__input_price_series_names\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 477, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__input_price_series_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_input_price_series_names = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_v_price_series = NULL;\n  PyObject *__pyx_v_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  Py_ssize_t __pyx_t_3;\n  PyObject *(*__pyx_t_4)(PyObject *);\n  PyObject *__pyx_t_5 = NULL;\n  int __pyx_t_6;\n  Py_ssize_t __pyx_t_7;\n  PyObject *(*__pyx_t_8)(PyObject *);\n  int __pyx_t_9;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__input_price_series_names\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_3 = 0;\n    __pyx_t_4 = NULL;\n  } else {\n    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 480, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 480, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_4)) {\n      if (likely(PyList_CheckExact(__pyx_t_2))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 480, __pyx_L1_error)\n          #endif\n          if (__pyx_t_3 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_3;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 480, __pyx_L1_error)\n          #endif\n          if (__pyx_t_3 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3);\n        #endif\n        ++__pyx_t_3;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_4(__pyx_t_2);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 480, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 481, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_6 = PyList_Check(__pyx_v_price_series); \n    if (__pyx_t_6) {\n\n      if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) {\n        __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1);\n        __pyx_t_7 = 0;\n        __pyx_t_8 = NULL;\n      } else {\n        __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_1);\n        __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 483, __pyx_L1_error)\n      }\n      for (;;) {\n        if (likely(!__pyx_t_8)) {\n          if (likely(PyList_CheckExact(__pyx_t_1))) {\n            {\n              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);\n              #if !CYTHON_ASSUME_SAFE_SIZE\n              if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error)\n              #endif\n              if (__pyx_t_7 >= __pyx_temp) break;\n            }\n            __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference);\n            ++__pyx_t_7;\n          } else {\n            {\n              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);\n              #if !CYTHON_ASSUME_SAFE_SIZE\n              if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error)\n              #endif\n              if (__pyx_t_7 >= __pyx_temp) break;\n            }\n            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n            __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7));\n            #else\n            __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7);\n            #endif\n            ++__pyx_t_7;\n          }\n          if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 483, __pyx_L1_error)\n        } else {\n          __pyx_t_5 = __pyx_t_8(__pyx_t_1);\n          if (unlikely(!__pyx_t_5)) {\n            PyObject* exc_type = PyErr_Occurred();\n            if (exc_type) {\n              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 483, __pyx_L1_error)\n              PyErr_Clear();\n            }\n            break;\n          }\n        }\n        __Pyx_GOTREF(__pyx_t_5);\n        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);\n        __pyx_t_5 = 0;\n\n        __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 484, __pyx_L1_error)\n\n      }\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n      goto __pyx_L5;\n    }\n\n    /*else*/ {\n      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 486, __pyx_L1_error)\n    }\n    __pyx_L5:;\n\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_input_price_series_names);\n  __pyx_r = __pyx_v_input_price_series_names;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__input_price_series_names\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_input_price_series_names);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XDECREF(__pyx_v_price_series);\n  __Pyx_XDECREF(__pyx_v_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, \"Function.__call_function(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {\"__call_function\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__call_function (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 489, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 489, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__call_function\", 0) < (0)) __PYX_ERR(2, 489, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__call_function\", 1, 1, 1, i); __PYX_ERR(2, 489, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 489, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__call_function\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 489, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__call_function\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_input_price_series_names = NULL;\n  PyObject *__pyx_v_args = NULL;\n  PyObject *__pyx_v_price_series = NULL;\n  PyObject *__pyx_v_series = NULL;\n  PyObject *__pyx_v_opt_input = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_v_results = NULL;\n  PyObject *__pyx_v_keys = NULL;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_v_output = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  Py_ssize_t __pyx_t_4;\n  PyObject *(*__pyx_t_5)(PyObject *);\n  PyObject *__pyx_t_6 = NULL;\n  int __pyx_t_7;\n  int __pyx_t_8;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *__pyx_t_10 = NULL;\n  int __pyx_t_11;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__call_function\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_v_self;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_3 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_v_input_price_series_names = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_args = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) {\n    __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 495, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 495, __pyx_L1_error)\n  }\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_1))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 495, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 495, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4));\n        #else\n        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 495, __pyx_L1_error)\n    } else {\n      __pyx_t_2 = __pyx_t_5(__pyx_t_1);\n      if (unlikely(!__pyx_t_2)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 495, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2);\n    __pyx_t_2 = 0;\n\n    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 496, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 496, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6);\n    __pyx_t_6 = 0;\n\n    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 497, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_8 = (__pyx_t_6 != Py_None);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (__pyx_t_8) {\n    } else {\n      __pyx_t_7 = __pyx_t_8;\n      goto __pyx_L6_bool_binop_done;\n    }\n\n    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 498, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 498, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_7 = __pyx_t_8;\n    __pyx_L6_bool_binop_done:;\n\n    if (__pyx_t_7) {\n\n      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 499, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_9);\n      __pyx_t_2 = __pyx_t_9;\n      __Pyx_INCREF(__pyx_t_2);\n      __pyx_t_3 = 0;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))};\n        __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n        if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_6);\n      }\n      __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6);\n      __pyx_t_6 = 0;\n\n      goto __pyx_L5;\n    }\n\n    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_8 = (__pyx_t_6 != Py_None);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (__pyx_t_8) {\n    } else {\n      __pyx_t_7 = __pyx_t_8;\n      goto __pyx_L8_bool_binop_done;\n    }\n\n    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 501, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_7 = __pyx_t_8;\n    __pyx_L8_bool_binop_done:;\n\n    if (__pyx_t_7) {\n\n      __pyx_t_10 = __pyx_v_series;\n      __Pyx_INCREF(__pyx_t_10);\n      __pyx_t_3 = 0;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};\n        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n        if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 502, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_2);\n      }\n      __pyx_t_9 = __pyx_t_2;\n      __Pyx_INCREF(__pyx_t_9);\n      __pyx_t_3 = 0;\n      {\n        PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))};\n        __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n        if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 502, __pyx_L1_error)\n        __Pyx_GOTREF(__pyx_t_6);\n      }\n      __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6);\n      __pyx_t_6 = 0;\n\n    }\n    __pyx_L5:;\n\n    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 503, __pyx_L1_error)\n\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {\n    __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 504, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 504, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_6))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 504, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 504, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_5(__pyx_t_6);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 504, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_2 = __pyx_v_self;\n    __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_3 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input};\n      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 505, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n    }\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 506, __pyx_L1_error)\n\n  }\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 509, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 509, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 509, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_v_results = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); \n  if (__pyx_t_7) {\n\n    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 511, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_1 = __pyx_t_6;\n    __Pyx_INCREF(__pyx_t_1);\n    __pyx_t_3 = 0;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};\n      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 511, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __pyx_v_keys = __pyx_t_2;\n    __pyx_t_2 = 0;\n\n    __pyx_t_7 = PyList_Check(__pyx_v_keys); \n    __pyx_t_8 = (!__pyx_t_7);\n    if (__pyx_t_8) {\n\n      __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2);\n      __pyx_t_2 = 0;\n\n    }\n\n    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 514, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 514, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 514, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n    goto __pyx_L14;\n  }\n\n  /*else*/ {\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n    __pyx_t_6 = __pyx_mstate_global->__pyx_int_0;\n    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {\n      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);\n      __pyx_t_4 = 0;\n      __pyx_t_5 = NULL;\n    } else {\n      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 516, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 516, __pyx_L1_error)\n    }\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    for (;;) {\n      if (likely(!__pyx_t_5)) {\n        if (likely(PyList_CheckExact(__pyx_t_1))) {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 516, __pyx_L1_error)\n            #endif\n            if (__pyx_t_4 >= __pyx_temp) break;\n          }\n          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n          ++__pyx_t_4;\n        } else {\n          {\n            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);\n            #if !CYTHON_ASSUME_SAFE_SIZE\n            if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 516, __pyx_L1_error)\n            #endif\n            if (__pyx_t_4 >= __pyx_temp) break;\n          }\n          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4));\n          #else\n          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4);\n          #endif\n          ++__pyx_t_4;\n        }\n        if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error)\n      } else {\n        __pyx_t_2 = __pyx_t_5(__pyx_t_1);\n        if (unlikely(!__pyx_t_2)) {\n          PyObject* exc_type = PyErr_Occurred();\n          if (exc_type) {\n            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 516, __pyx_L1_error)\n            PyErr_Clear();\n          }\n          break;\n        }\n      }\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2);\n      __pyx_t_2 = 0;\n      __Pyx_INCREF(__pyx_t_6);\n      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);\n      __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __Pyx_DECREF(__pyx_t_6);\n      __pyx_t_6 = __pyx_t_2;\n      __pyx_t_2 = 0;\n\n      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 517, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 517, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_9);\n      if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 517, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n    }\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  }\n  __pyx_L14:;\n\n  if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 518, __pyx_L1_error)\n\n\n  /* function exit code */\n  __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__call_function\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_input_price_series_names);\n  __Pyx_XDECREF(__pyx_v_args);\n  __Pyx_XDECREF(__pyx_v_price_series);\n  __Pyx_XDECREF(__pyx_v_series);\n  __Pyx_XDECREF(__pyx_v_opt_input);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_results);\n  __Pyx_XDECREF(__pyx_v_keys);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XDECREF(__pyx_v_output);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, \"Function.__check_opt_input_value(self, input_name, value)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {\"__check_opt_input_value\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_input_name = 0;\n  PyObject *__pyx_v_value = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__check_opt_input_value (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 520, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 520, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__check_opt_input_value\", 0) < (0)) __PYX_ERR(2, 520, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__check_opt_input_value\", 1, 3, 3, i); __PYX_ERR(2, 520, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 520, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 520, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 520, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_input_name = values[1];\n    __pyx_v_value = values[2];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__check_opt_input_value\", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 520, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__check_opt_input_value\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) {\n  PyObject *__pyx_v_type_ = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_t_5;\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9[7];\n  size_t __pyx_t_10;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__check_opt_input_value\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_v_type_ = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __Pyx_INCREF(__pyx_v_type_);\n  __pyx_t_2 = __pyx_v_type_;\n  __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (!__pyx_t_5) {\n  } else {\n    __pyx_t_3 = __pyx_t_5;\n    goto __pyx_L4_bool_binop_done;\n  }\n  __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 522, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_3 = __pyx_t_5;\n  __pyx_L4_bool_binop_done:;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_5 = __pyx_t_3;\n  if (__pyx_t_5) {\n\n    __Pyx_INCREF((PyObject *)(&PyLong_Type));\n    __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type)));\n\n    goto __pyx_L3;\n  }\n\n  __Pyx_INCREF(__pyx_v_type_);\n  __pyx_t_2 = __pyx_v_type_;\n  __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (!__pyx_t_3) {\n  } else {\n    __pyx_t_5 = __pyx_t_3;\n    goto __pyx_L6_bool_binop_done;\n  }\n  __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 524, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_5 = __pyx_t_3;\n  __pyx_L6_bool_binop_done:;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_3 = __pyx_t_5;\n  if (__pyx_t_3) {\n\n    __Pyx_INCREF((PyObject *)(&PyFloat_Type));\n    __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type)));\n\n  }\n  __pyx_L3:;\n\n  __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 527, __pyx_L1_error)\n  if (__pyx_t_3) {\n\n    __Pyx_XDECREF(__pyx_r);\n    __Pyx_INCREF(Py_True);\n    __pyx_r = Py_True;\n    goto __pyx_L0;\n\n  }\n\n  __pyx_t_3 = (__pyx_v_value != Py_None);\n  if (unlikely(__pyx_t_3)) {\n\n    __pyx_t_1 = NULL;\n\n    __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 532, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 532, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 532, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_7);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 532, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 532, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for;\n    __pyx_t_9[1] = __pyx_t_4;\n    __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected;\n    __pyx_t_9[3] = __pyx_t_7;\n    __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got;\n    __pyx_t_9[5] = __pyx_t_8;\n    __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__5;\n\n    __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));\n    if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __pyx_t_10 = 1;\n    {\n      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6};\n      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 530, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_2);\n    }\n    __Pyx_Raise(__pyx_t_2, 0, 0, 0);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __PYX_ERR(2, 530, __pyx_L1_error)\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(Py_False);\n  __pyx_r = Py_False;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__check_opt_input_value\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_type_);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, \"Function.__get_opt_input_value(self, input_name)\\n\\nReturns the user-set value if there is one, otherwise the default.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {\"__get_opt_input_value\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  PyObject *__pyx_v_input_name = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__get_opt_input_value (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 535, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 535, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 535, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__get_opt_input_value\", 0) < (0)) __PYX_ERR(2, 535, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__get_opt_input_value\", 1, 2, 2, i); __PYX_ERR(2, 535, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 535, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 535, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n    __pyx_v_input_name = values[1];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__get_opt_input_value\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 535, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__get_opt_input_value\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) {\n  PyObject *__pyx_v_local = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__get_opt_input_value\", 0);\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_local = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 540, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_v_value = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_3 = (__pyx_v_value == Py_None);\n  if (__pyx_t_3) {\n\n    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 542, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_value);\n  __pyx_r = __pyx_v_value;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__get_opt_input_value\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_local);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, \"Function.__repr__(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {\"__repr__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__repr__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 545, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 545, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__repr__\", 0) < (0)) __PYX_ERR(2, 545, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__repr__\", 1, 1, 1, i); __PYX_ERR(2, 545, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 545, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__repr__\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 545, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__repr__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__repr__\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 546, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 546, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__repr__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, \"Function.__unicode__(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {\"__unicode__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__unicode__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 548, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__unicode__\", 0) < (0)) __PYX_ERR(2, 548, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__unicode__\", 1, 1, 1, i); __PYX_ERR(2, 548, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__unicode__\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 548, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__unicode__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  size_t __pyx_t_3;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__unicode__\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = __pyx_v_self;\n  __Pyx_INCREF(__pyx_t_2);\n  __pyx_t_3 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};\n    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 549, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__unicode__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, \"Function.__str__(self)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {\"__str__\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_self = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__str__ (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 551, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__str__\", 0) < (0)) __PYX_ERR(2, 551, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__str__\", 1, 1, 1, i); __PYX_ERR(2, 551, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error)\n    }\n    __pyx_v_self = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__str__\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 551, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__str__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  size_t __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__str__\", 0);\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 552, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 552, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_2);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_2);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_5 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 552, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 552, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.Function.__str__\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348_ta_getGroupTable, \"_ta_getGroupTable()\\n\\nReturns the list of available TALIB function group names. *slow*\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_349_ta_getGroupTable = {\"_ta_getGroupTable\", (PyCFunction)__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_348_ta_getGroupTable};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getGroupTable (wrapper)\", 0);\n  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(__pyx_self);\n\n  /* function exit code */\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) {\n  TA_StringTable *__pyx_v_table;\n  PyObject *__pyx_v_groups = NULL;\n  unsigned int __pyx_v_i;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  unsigned int __pyx_t_2;\n  unsigned int __pyx_t_3;\n  unsigned int __pyx_t_4;\n  int __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getGroupTable\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 570, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 571, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_groups = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_v_table->size;\n  __pyx_t_3 = __pyx_t_2;\n  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {\n    __pyx_v_i = __pyx_t_4;\n\n    __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 573, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  }\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 574, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_groups);\n  __pyx_r = __pyx_v_groups;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getGroupTable\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_groups);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350_ta_getFuncTable, \"_ta_getFuncTable(char *group)\\n\\nReturns a list of the functions for the specified group name. *slow*\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_351_ta_getFuncTable = {\"_ta_getFuncTable\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350_ta_getFuncTable};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  char *__pyx_v_group;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getFuncTable (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 577, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_getFuncTable\", 0) < (0)) __PYX_ERR(2, 577, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_getFuncTable\", 1, 1, 1, i); __PYX_ERR(2, 577, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 577, __pyx_L3_error)\n    }\n    __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 577, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_getFuncTable\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 577, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getFuncTable\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_350_ta_getFuncTable(__pyx_self, __pyx_v_group);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) {\n  TA_StringTable *__pyx_v_table;\n  PyObject *__pyx_v_functions = NULL;\n  unsigned int __pyx_v_i;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  unsigned int __pyx_t_2;\n  unsigned int __pyx_t_3;\n  unsigned int __pyx_t_4;\n  int __pyx_t_5;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getFuncTable\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 582, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_functions = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = __pyx_v_table->size;\n  __pyx_t_3 = __pyx_t_2;\n  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {\n    __pyx_v_i = __pyx_t_4;\n\n    __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 585, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  }\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 586, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_functions);\n  __pyx_r = __pyx_v_functions;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getFuncTable\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_functions);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_353__get_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352__get_flags, \"__get_flags(int flag, dict flags_lookup_dict)\\n\\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\\nThis function returns the flags from flag found in the provided\\nflags_lookup_dict.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_353__get_flags = {\"__get_flags\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352__get_flags};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_353__get_flags(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  int __pyx_v_flag;\n  PyObject *__pyx_v_flags_lookup_dict = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"__get_flags (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 589, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 589, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 589, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"__get_flags\", 0) < (0)) __PYX_ERR(2, 589, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"__get_flags\", 1, 2, 2, i); __PYX_ERR(2, 589, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 589, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 589, __pyx_L3_error)\n    }\n    __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 589, __pyx_L3_error)\n    __pyx_v_flags_lookup_dict = ((PyObject*)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"__get_flags\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 589, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.__get_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, \"flags_lookup_dict\", 1))) __PYX_ERR(2, 589, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_352__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_352__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) {\n  PyObject *__pyx_v_value_range = NULL;\n  PyObject *__pyx_v_min_int = NULL;\n  PyObject *__pyx_v_max_int = NULL;\n  PyObject *__pyx_v_ret = NULL;\n  PyObject *__pyx_v_i = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_t_2;\n  int __pyx_t_3;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  PyObject *__pyx_t_7 = NULL;\n  size_t __pyx_t_8;\n  PyObject *(*__pyx_t_9)(PyObject *);\n  int __pyx_t_10;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__get_flags\", 0);\n\n  if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) {\n    PyErr_Format(PyExc_AttributeError, \"'NoneType' object has no attribute '%.30s'\", \"keys\");\n    __PYX_ERR(2, 595, __pyx_L1_error)\n  }\n  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 595, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_value_range = __pyx_t_1;\n  __pyx_t_1 = 0;\n\n  __pyx_t_2 = PyList_Check(__pyx_v_value_range); \n  __pyx_t_3 = (!__pyx_t_2);\n  if (__pyx_t_3) {\n\n    __pyx_t_1 = PySequence_List(__pyx_v_value_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 597, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF_SET(__pyx_v_value_range, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n  }\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_math); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 598, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __pyx_t_7 = NULL;\n  __pyx_t_8 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_value_range};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_min, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 598, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  __pyx_t_8 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_6))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);\n    __pyx_t_8 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_mstate_global->__pyx_int_2};\n    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n  }\n  __pyx_t_6 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_v_min_int = ((PyObject*)__pyx_t_6);\n  __pyx_t_6 = 0;\n\n  __pyx_t_1 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_math); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __pyx_t_7 = NULL;\n  __pyx_t_8 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_value_range};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_max, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 599, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  __pyx_t_8 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_1);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_1);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_8 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_t_5, __pyx_mstate_global->__pyx_int_2};\n    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n  }\n  __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_v_max_int = ((PyObject*)__pyx_t_4);\n  __pyx_t_4 = 0;\n\n  __pyx_t_2 = (__pyx_v_flag < 1);\n  if (!__pyx_t_2) {\n  } else {\n    __pyx_t_3 = __pyx_t_2;\n    goto __pyx_L5_bool_binop_done;\n  }\n  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_6 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_max_int, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 602, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 602, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __pyx_t_3 = __pyx_t_2;\n  __pyx_L5_bool_binop_done:;\n  if (__pyx_t_3) {\n\n    __Pyx_XDECREF(__pyx_r);\n    __pyx_r = Py_None; __Pyx_INCREF(Py_None);\n    goto __pyx_L0;\n\n  }\n\n  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 608, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_v_ret = ((PyObject*)__pyx_t_5);\n  __pyx_t_5 = 0;\n\n  __pyx_t_6 = NULL;\n  __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_v_max_int, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_8 = 1;\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_min_int, __pyx_t_4};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 609, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 609, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  for (;;) {\n    {\n      __pyx_t_5 = __pyx_t_9(__pyx_t_4);\n      if (unlikely(!__pyx_t_5)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 609, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_5);\n    if (__Pyx_PyInt_FromNumber(&__pyx_t_5, NULL, 1) < (0)) __PYX_ERR(2, 609, __pyx_L1_error)\n    __Pyx_XDECREF_SET(__pyx_v_i, ((PyObject*)__pyx_t_5));\n    __pyx_t_5 = 0;\n\n    __pyx_t_5 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 610, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 610, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_1 = PyNumber_And(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 610, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 610, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    if (__pyx_t_3) {\n\n      if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) {\n        PyErr_SetString(PyExc_TypeError, \"'NoneType' object is not subscriptable\");\n        __PYX_ERR(2, 611, __pyx_L1_error)\n      }\n      __pyx_t_1 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 611, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flags_lookup_dict, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 611, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_6); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 611, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n    }\n\n  }\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __Pyx_INCREF(__pyx_v_ret);\n  __pyx_r = __pyx_v_ret;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_7);\n  __Pyx_AddTraceback(\"talib._ta_lib.__get_flags\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_value_range);\n  __Pyx_XDECREF(__pyx_v_min_int);\n  __Pyx_XDECREF(__pyx_v_max_int);\n  __Pyx_XDECREF(__pyx_v_ret);\n  __Pyx_XDECREF(__pyx_v_i);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354_ta_getFuncInfo, \"_ta_getFuncInfo(char *function_name)\\n\\nReturns the info dict for the function. It has the following keys: name,\\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_355_ta_getFuncInfo = {\"_ta_getFuncInfo\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354_ta_getFuncInfo};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  char *__pyx_v_function_name;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getFuncInfo (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 648, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 648, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_getFuncInfo\", 0) < (0)) __PYX_ERR(2, 648, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_getFuncInfo\", 1, 1, 1, i); __PYX_ERR(2, 648, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 648, __pyx_L3_error)\n    }\n    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_getFuncInfo\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 648, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getFuncInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(__pyx_self, __pyx_v_function_name);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) {\n  TA_FuncInfo const *__pyx_v_info;\n  TA_RetCode __pyx_v_retCode;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_FuncHandle const *__pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  size_t __pyx_t_7;\n  PyObject *__pyx_t_8 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getFuncInfo\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 654, __pyx_L1_error)\n  __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 655, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n\n  __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_7 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_5))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);\n    __pyx_t_7 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_5 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 659, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 659, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_7 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_6))) {\n    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);\n    assert(__pyx_t_5);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);\n    __Pyx_INCREF(__pyx_t_5);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);\n    __pyx_t_7 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 659, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_6 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 660, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 660, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_7 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_6);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_6);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_7 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 660, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 661, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 661, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 661, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_7 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_5))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);\n    __pyx_t_7 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 661, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_5 = NULL;\n  __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 662, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 662, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_8 = NULL;\n  __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 663, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 663, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_5 = NULL;\n  __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 664, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 664, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getFuncInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356_ta_getInputParameterInfo, \"_ta_getInputParameterInfo(char *function_name, int idx)\\n\\nReturns the function's input info dict for the given index. It has two\\nkeys: name and flags.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_357_ta_getInputParameterInfo = {\"_ta_getInputParameterInfo\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356_ta_getInputParameterInfo};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  char *__pyx_v_function_name;\n  int __pyx_v_idx;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getInputParameterInfo (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 667, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 667, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 667, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_getInputParameterInfo\", 0) < (0)) __PYX_ERR(2, 667, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_getInputParameterInfo\", 1, 2, 2, i); __PYX_ERR(2, 667, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 667, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 667, __pyx_L3_error)\n    }\n    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 667, __pyx_L3_error)\n    __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 667, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_getInputParameterInfo\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 667, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getInputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {\n  TA_InputParameterInfo const *__pyx_v_info;\n  TA_RetCode __pyx_v_retCode;\n  PyObject *__pyx_v_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_FuncHandle const *__pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  size_t __pyx_t_6;\n  Py_ssize_t __pyx_t_7;\n  int __pyx_t_8;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *__pyx_t_10 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getInputParameterInfo\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 673, __pyx_L1_error)\n  __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 674, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 676, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 676, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_3);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_3);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 676, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __pyx_v_name = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 677, __pyx_L1_error)\n  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_4 = __pyx_t_5;\n  __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_6 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 677, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 678, __pyx_L1_error)\n  if (__pyx_t_8) {\n\n    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 679, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 679, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5);\n    __pyx_t_5 = 0;\n\n    goto __pyx_L3;\n  }\n\n  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 680, __pyx_L1_error)\n  if (__pyx_t_8) {\n\n    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices);\n    __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices);\n\n  }\n  __pyx_L3:;\n\n  __Pyx_XDECREF(__pyx_r);\n\n  __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 684, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 684, __pyx_L1_error)\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 685, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_9 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 685, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_9);\n  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 685, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_10);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_9, __pyx_t_10};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 685, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 684, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_5;\n  __pyx_t_5 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getInputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358_ta_getOptInputParameterInfo, \"_ta_getOptInputParameterInfo(char *function_name, int idx)\\n\\nReturns the function's opt_input info dict for the given index. It has the\\nfollowing keys: name, display_name, type, help, default_value and value.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_359_ta_getOptInputParameterInfo = {\"_ta_getOptInputParameterInfo\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358_ta_getOptInputParameterInfo};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  char *__pyx_v_function_name;\n  int __pyx_v_idx;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getOptInputParameterInfo (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 688, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 688, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 688, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_getOptInputParameterInfo\", 0) < (0)) __PYX_ERR(2, 688, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_getOptInputParameterInfo\", 1, 2, 2, i); __PYX_ERR(2, 688, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 688, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 688, __pyx_L3_error)\n    }\n    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 688, __pyx_L3_error)\n    __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 688, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_getOptInputParameterInfo\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 688, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getOptInputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {\n  TA_OptInputParameterInfo const *__pyx_v_info;\n  TA_RetCode __pyx_v_retCode;\n  PyObject *__pyx_v_name = NULL;\n  PyObject *__pyx_v_default_value = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_FuncHandle const *__pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  size_t __pyx_t_6;\n  Py_ssize_t __pyx_t_7;\n  int __pyx_t_8;\n  PyObject *__pyx_t_9 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getOptInputParameterInfo\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 694, __pyx_L1_error)\n  __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 695, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 697, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_3);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_3);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 697, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __pyx_v_name = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 698, __pyx_L1_error)\n  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 698, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_4 = __pyx_t_5;\n  __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_6 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 698, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_8 = (__pyx_v_info->type > 1);\n  if (__pyx_t_8) {\n    __pyx_t_5 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 699, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_2 = __pyx_t_5;\n    __pyx_t_5 = 0;\n  } else {\n    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 699, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __pyx_t_2 = __pyx_t_5;\n    __pyx_t_5 = 0;\n  }\n  __pyx_v_default_value = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n\n  __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 702, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 703, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 703, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_9);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n  __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 704, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 705, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_9);\n  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 705, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_9))) {\n    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);\n    assert(__pyx_t_3);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);\n    __Pyx_INCREF(__pyx_t_3);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 705, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 702, __pyx_L1_error)\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getOptInputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_name);\n  __Pyx_XDECREF(__pyx_v_default_value);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360_ta_getOutputParameterInfo, \"_ta_getOutputParameterInfo(char *function_name, int idx)\\n\\nReturns the function's output info dict for the given index. It has two\\nkeys: name and flags.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_361_ta_getOutputParameterInfo = {\"_ta_getOutputParameterInfo\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360_ta_getOutputParameterInfo};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  char *__pyx_v_function_name;\n  int __pyx_v_idx;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_ta_getOutputParameterInfo (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 710, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 710, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 710, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_ta_getOutputParameterInfo\", 0) < (0)) __PYX_ERR(2, 710, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_ta_getOutputParameterInfo\", 1, 2, 2, i); __PYX_ERR(2, 710, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 710, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 710, __pyx_L3_error)\n    }\n    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 710, __pyx_L3_error)\n    __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 710, __pyx_L3_error)\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_ta_getOutputParameterInfo\", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 710, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getOutputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {\n  TA_OutputParameterInfo const *__pyx_v_info;\n  TA_RetCode __pyx_v_retCode;\n  PyObject *__pyx_v_name = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  TA_FuncHandle const *__pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  size_t __pyx_t_6;\n  Py_ssize_t __pyx_t_7;\n  int __pyx_t_8;\n  int __pyx_t_9;\n  int __pyx_t_10;\n  PyObject *__pyx_t_11 = NULL;\n  PyObject *__pyx_t_12 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_ta_getOutputParameterInfo\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 716, __pyx_L1_error)\n  __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_4))) {\n    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);\n    assert(__pyx_t_3);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);\n    __Pyx_INCREF(__pyx_t_3);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 719, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __pyx_v_name = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 720, __pyx_L1_error)\n  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 720, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __pyx_t_4 = __pyx_t_5;\n  __Pyx_INCREF(__pyx_t_4);\n  __pyx_t_6 = 0;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 720, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 722, __pyx_L1_error)\n  if (__pyx_t_9) {\n  } else {\n    __pyx_t_8 = __pyx_t_9;\n    goto __pyx_L4_bool_binop_done;\n  }\n  __Pyx_INCREF(__pyx_v_name);\n  __pyx_t_2 = __pyx_v_name;\n  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error)\n  if (__pyx_t_10) {\n  } else {\n    __pyx_t_9 = __pyx_t_10;\n    goto __pyx_L6_bool_binop_done;\n  }\n  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error)\n  if (__pyx_t_10) {\n  } else {\n    __pyx_t_9 = __pyx_t_10;\n    goto __pyx_L6_bool_binop_done;\n  }\n  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error)\n  __pyx_t_9 = __pyx_t_10;\n  __pyx_L6_bool_binop_done:;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_10 = __pyx_t_9;\n  __pyx_t_8 = __pyx_t_10;\n  __pyx_L4_bool_binop_done:;\n  if (__pyx_t_8) {\n\n    __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 723, __pyx_L1_error)\n    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 723, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2);\n    __pyx_t_2 = 0;\n\n  }\n\n  __Pyx_XDECREF(__pyx_r);\n\n  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 726, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 726, __pyx_L1_error)\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 727, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_11 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 727, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_11);\n  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 727, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_12);\n  __pyx_t_6 = 1;\n  #if CYTHON_UNPACK_METHODS\n  if (unlikely(PyMethod_Check(__pyx_t_3))) {\n    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);\n    assert(__pyx_t_4);\n    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);\n    __Pyx_INCREF(__pyx_t_4);\n    __Pyx_INCREF(__pyx__function);\n    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);\n    __pyx_t_6 = 0;\n  }\n  #endif\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 727, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 726, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_11);\n  __Pyx_XDECREF(__pyx_t_12);\n  __Pyx_AddTraceback(\"talib._ta_lib._ta_getOutputParameterInfo\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_name);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362_get_defaults_and_docs, \"_get_defaults_and_docs(func_info)\\n\\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\\nand documentation, a formatted docstring for the function.\\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo.\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_363_get_defaults_and_docs = {\"_get_defaults_and_docs\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362_get_defaults_and_docs};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyObject *__pyx_v_func_info = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"_get_defaults_and_docs (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 730, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 730, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"_get_defaults_and_docs\", 0) < (0)) __PYX_ERR(2, 730, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"_get_defaults_and_docs\", 1, 1, 1, i); __PYX_ERR(2, 730, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 730, __pyx_L3_error)\n    }\n    __pyx_v_func_info = values[0];\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"_get_defaults_and_docs\", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 730, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib._get_defaults_and_docs\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_362_get_defaults_and_docs(__pyx_self, __pyx_v_func_info);\n\n  /* function exit code */\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_362_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) {\n  PyObject *__pyx_v_defaults = NULL;\n  PyObject *__pyx_v_func_line = NULL;\n  PyObject *__pyx_v_func_args = NULL;\n  PyObject *__pyx_v_docs = NULL;\n  PyObject *__pyx_v_input_names = NULL;\n  PyObject *__pyx_v_input_name = NULL;\n  PyObject *__pyx_v_value = NULL;\n  PyObject *__pyx_v_params = NULL;\n  PyObject *__pyx_v_param = NULL;\n  PyObject *__pyx_v_outputs = NULL;\n  PyObject *__pyx_v_output = NULL;\n  PyObject *__pyx_v_documentation = NULL;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_t_3;\n  Py_ssize_t __pyx_t_4;\n  PyObject *(*__pyx_t_5)(PyObject *);\n  int __pyx_t_6;\n  int __pyx_t_7;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9[4];\n  PyObject *__pyx_t_10 = NULL;\n  PyObject *__pyx_t_11[5];\n  PyObject *__pyx_t_12 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"_get_defaults_and_docs\", 0);\n\n  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 736, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_v_defaults = ((PyObject*)__pyx_t_1);\n  __pyx_t_1 = 0;\n\n  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 737, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 737, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 737, __pyx_L1_error);\n  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__6);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__6);\n  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__6) != (0)) __PYX_ERR(2, 737, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_v_func_line = ((PyObject*)__pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 738, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2);\n  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 738, __pyx_L1_error);\n  __pyx_v_func_args = ((PyObject*)__pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 739, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_v_docs = ((PyObject*)__pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 740, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 740, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 742, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_v_input_names = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 743, __pyx_L1_error)\n\n  if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) {\n    __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 744, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 744, __pyx_L1_error)\n  }\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_2))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 744, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 744, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));\n        #else\n        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 744, __pyx_L1_error)\n    } else {\n      __pyx_t_1 = __pyx_t_5(__pyx_t_2);\n      if (unlikely(!__pyx_t_1)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 744, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 745, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);\n    __pyx_t_1 = 0;\n\n    __pyx_t_6 = PyList_Check(__pyx_v_value); \n    __pyx_t_7 = (!__pyx_t_6);\n    if (__pyx_t_7) {\n\n      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray);\n      __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray);\n\n    }\n\n    __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 748, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7;\n    __pyx_t_9[1] = __pyx_t_1;\n    __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_;\n    __pyx_t_9[3] = __pyx_t_8;\n    __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));\n    if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 748, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_10);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_10); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 750, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_v_params = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 751, __pyx_L1_error)\n  if (__pyx_t_7) {\n\n    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 752, __pyx_L1_error)\n\n  }\n\n  if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) {\n    __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 753, __pyx_L1_error)\n  }\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_2))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 753, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_10 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 753, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));\n        #else\n        __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 753, __pyx_L1_error)\n    } else {\n      __pyx_t_10 = __pyx_t_5(__pyx_t_2);\n      if (unlikely(!__pyx_t_10)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 753, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_10);\n    __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_10);\n    __pyx_t_10 = 0;\n\n    __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 754, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_10);\n    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 754, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7;\n    __pyx_t_9[1] = __pyx_t_10;\n    __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_;\n    __pyx_t_9[3] = __pyx_t_1;\n    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));\n    if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 754, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n    __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 755, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 755, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 755, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_10);\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u__8;\n    __pyx_t_11[1] = __pyx_t_8;\n    __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__9;\n    __pyx_t_11[3] = __pyx_t_10;\n    __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u__10;\n    __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_11, 5, 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10));\n    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 755, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 755, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 756, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_1);\n    if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 756, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_param, __pyx_mstate_global->__pyx_n_u_matype, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 757, __pyx_L1_error)\n    if (__pyx_t_7) {\n\n      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_1);\n      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_10);\n      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_12);\n      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n      __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n      __pyx_t_12 = PyList_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_12);\n      __Pyx_GIVEREF(__pyx_t_1);\n      if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 758, __pyx_L1_error);\n      __Pyx_GIVEREF(__pyx_t_8);\n      if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 758, __pyx_L1_error);\n      __pyx_t_1 = 0;\n      __pyx_t_8 = 0;\n      __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__11, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_8);\n      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n      if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 758, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n    }\n\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 760, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_v_outputs = __pyx_t_2;\n  __pyx_t_2 = 0;\n\n  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 761, __pyx_L1_error)\n\n  if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) {\n    __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2);\n    __pyx_t_4 = 0;\n    __pyx_t_5 = NULL;\n  } else {\n    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 762, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 762, __pyx_L1_error)\n  }\n  for (;;) {\n    if (likely(!__pyx_t_5)) {\n      if (likely(PyList_CheckExact(__pyx_t_2))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 762, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        __pyx_t_8 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_4;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 762, __pyx_L1_error)\n          #endif\n          if (__pyx_t_4 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));\n        #else\n        __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);\n        #endif\n        ++__pyx_t_4;\n      }\n      if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 762, __pyx_L1_error)\n    } else {\n      __pyx_t_8 = __pyx_t_5(__pyx_t_2);\n      if (unlikely(!__pyx_t_8)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 762, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_8);\n    __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8);\n    __pyx_t_8 = 0;\n\n    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 763, __pyx_L1_error)\n    if (__pyx_t_7) {\n\n      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100);\n      __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100);\n\n    }\n\n    __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 765, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_8);\n    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 765, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 767, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 767, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error)\n\n  __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 769, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 769, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__13, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 770, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_v_documentation = ((PyObject*)__pyx_t_2);\n  __pyx_t_2 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 771, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_INCREF(__pyx_v_defaults);\n  __Pyx_GIVEREF(__pyx_v_defaults);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 771, __pyx_L1_error);\n  __Pyx_INCREF(__pyx_v_documentation);\n  __Pyx_GIVEREF(__pyx_v_documentation);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 771, __pyx_L1_error);\n  __pyx_r = __pyx_t_2;\n  __pyx_t_2 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_XDECREF(__pyx_t_12);\n  __Pyx_AddTraceback(\"talib._ta_lib._get_defaults_and_docs\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF(__pyx_v_defaults);\n  __Pyx_XDECREF(__pyx_v_func_line);\n  __Pyx_XDECREF(__pyx_v_func_args);\n  __Pyx_XDECREF(__pyx_v_docs);\n  __Pyx_XDECREF(__pyx_v_input_names);\n  __Pyx_XDECREF(__pyx_v_input_name);\n  __Pyx_XDECREF(__pyx_v_value);\n  __Pyx_XDECREF(__pyx_v_params);\n  __Pyx_XDECREF(__pyx_v_param);\n  __Pyx_XDECREF(__pyx_v_outputs);\n  __Pyx_XDECREF(__pyx_v_output);\n  __Pyx_XDECREF(__pyx_v_documentation);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) {\n  TA_FuncHandle const *__pyx_v_handle;\n  TA_FuncHandle const *__pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_getFuncHandle\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_r = __pyx_v_handle;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_getFuncHandle\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) {\n  TA_ParamHolder *__pyx_v_holder;\n  TA_RetCode __pyx_v_retCode;\n  TA_ParamHolder *__pyx_r;\n  __Pyx_RefNannyDeclarations\n  TA_FuncHandle const *__pyx_t_1;\n  PyObject *__pyx_t_2 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_paramHolderAlloc\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 795, __pyx_L1_error)\n  __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 796, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_r = __pyx_v_holder;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_paramHolderAlloc\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) {\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_paramHolderFree\", 0);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 804, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_paramHolderFree\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) {\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_setOptInputParamInteger\", 0);\n\n  __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 808, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_setOptInputParamInteger\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) {\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_setOptInputParamReal\", 0);\n\n  __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value);\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 812, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n\n  /* function exit code */\n  __pyx_r = 0;\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_setOptInputParamReal\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\nstatic int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) {\n  int __pyx_v_lookback;\n  TA_RetCode __pyx_v_retCode;\n  int __pyx_r;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__ta_getLookback\", 0);\n\n  __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 817, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __pyx_r = __pyx_v_lookback;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.__ta_getLookback\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = -1;\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364stream_ACCBANDS, \"stream_ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nACCBANDS(high, low, close[, timeperiod=?])\\n\\nAcceleration Bands (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 20\\nOutputs:\\n    upperband\\n    middleband\\n    lowerband\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_365stream_ACCBANDS = {\"stream_ACCBANDS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364stream_ACCBANDS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ACCBANDS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 9, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ACCBANDS\", 0) < (0)) __PYX_ERR(5, 9, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ACCBANDS\", 0, 3, 4, i); __PYX_ERR(5, 9, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ACCBANDS\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 9, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ACCBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 11, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 11, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 11, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outrealupperband;\n  double __pyx_v_outrealmiddleband;\n  double __pyx_v_outreallowerband;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ACCBANDS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 36, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 38, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 42, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ACCBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 47, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 48, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 48, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 48, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_4);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 48, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_3 = 0;\n  __pyx_t_4 = 0;\n  __pyx_r = __pyx_t_5;\n  __pyx_t_5 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ACCBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ACOS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366stream_ACOS, \"stream_ACOS(ndarray real)\\n\\nACOS(real)\\n\\nVector Trigonometric ACos (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_367stream_ACOS = {\"stream_ACOS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366stream_ACOS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ACOS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ACOS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 50, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 50, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ACOS\", 0) < (0)) __PYX_ERR(5, 50, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ACOS\", 1, 1, 1, i); __PYX_ERR(5, 50, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 50, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ACOS\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 50, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ACOS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 52, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_366stream_ACOS(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ACOS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 69, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ACOS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 75, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ACOS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_369stream_AD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368stream_AD, \"stream_AD(ndarray high, ndarray low, ndarray close, ndarray volume)\\n\\nAD(high, low, close, volume)\\n\\nChaikin A/D Line (Volume Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_369stream_AD = {\"stream_AD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368stream_AD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_369stream_AD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_AD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 77, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 77, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 77, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 77, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 77, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_AD\", 0) < (0)) __PYX_ERR(5, 77, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_AD\", 1, 4, 4, i); __PYX_ERR(5, 77, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 77, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 77, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 77, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 77, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_AD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 77, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 79, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 79, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 79, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(5, 79, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_368stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  double *__pyx_v_volume_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_AD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 99, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 103, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 105, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 107, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_AD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 110, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 111, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_371stream_ADD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370stream_ADD, \"stream_ADD(ndarray real0, ndarray real1)\\n\\nADD(real0, real1)\\n\\nVector Arithmetic Add (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_371stream_ADD = {\"stream_ADD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370stream_ADD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_371stream_ADD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ADD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 113, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 113, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 113, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ADD\", 0) < (0)) __PYX_ERR(5, 113, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ADD\", 1, 2, 2, i); __PYX_ERR(5, 113, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 113, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 113, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ADD\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 113, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 115, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 115, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_370stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ADD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 134, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 136, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 138, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ADD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 141, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 142, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_373stream_ADOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372stream_ADOSC, \"stream_ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\\n\\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\\n\\nChaikin A/D Oscillator (Volume Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nParameters:\\n    fastperiod: 3\\n    slowperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_373stream_ADOSC = {\"stream_ADOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372stream_ADOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_373stream_ADOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ADOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 144, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ADOSC\", 0) < (0)) __PYX_ERR(5, 144, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ADOSC\", 0, 4, 6, i); __PYX_ERR(5, 144, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 144, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 144, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 144, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 144, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 144, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 146, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 146, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ADOSC\", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 144, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 146, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 146, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 146, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(5, 146, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_372stream_ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_372stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  double *__pyx_v_volume_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ADOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 169, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 175, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 177, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ADOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 180, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_375stream_ADX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374stream_ADX, \"stream_ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nADX(high, low, close[, timeperiod=?])\\n\\nAverage Directional Movement Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_375stream_ADX = {\"stream_ADX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374stream_ADX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_375stream_ADX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ADX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 183, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 183, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 183, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 183, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 183, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ADX\", 0) < (0)) __PYX_ERR(5, 183, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ADX\", 0, 3, 4, i); __PYX_ERR(5, 183, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 183, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 183, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 183, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 183, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 185, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ADX\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 183, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 185, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 185, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 185, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_374stream_ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ADX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 206, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 208, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 212, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ADX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 216, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ADXR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376stream_ADXR, \"stream_ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nADXR(high, low, close[, timeperiod=?])\\n\\nAverage Directional Movement Index Rating (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_377stream_ADXR = {\"stream_ADXR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376stream_ADXR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ADXR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ADXR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 218, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ADXR\", 0) < (0)) __PYX_ERR(5, 218, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ADXR\", 0, 3, 4, i); __PYX_ERR(5, 218, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 218, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 218, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 218, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 218, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 220, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ADXR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 218, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADXR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 220, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 220, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 220, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_376stream_ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ADXR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 243, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 245, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 247, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ADXR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 250, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 251, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ADXR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_379stream_APO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378stream_APO, \"stream_APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\\n\\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\\n\\nAbsolute Price Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_379stream_APO = {\"stream_APO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378stream_APO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_379stream_APO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_APO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 253, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_APO\", 0) < (0)) __PYX_ERR(5, 253, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_APO\", 0, 1, 4, i); __PYX_ERR(5, 253, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 253, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 253, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_APO\", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 253, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_APO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 255, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_378stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_378stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_APO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 276, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_APO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 282, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_APO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_381stream_AROON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380stream_AROON, \"stream_AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nAROON(high, low[, timeperiod=?])\\n\\nAroon (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    aroondown\\n    aroonup\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_381stream_AROON = {\"stream_AROON\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380stream_AROON};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_381stream_AROON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_AROON (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 284, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_AROON\", 0) < (0)) __PYX_ERR(5, 284, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_AROON\", 0, 2, 3, i); __PYX_ERR(5, 284, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 286, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_AROON\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 284, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AROON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 286, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 286, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_380stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outaroondown;\n  double __pyx_v_outaroonup;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_AROON\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 308, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 310, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 312, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_AROON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 316, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 317, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 317, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 317, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 317, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AROON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382stream_AROONOSC, \"stream_AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nAROONOSC(high, low[, timeperiod=?])\\n\\nAroon Oscillator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_383stream_AROONOSC = {\"stream_AROONOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382stream_AROONOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_AROONOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 319, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_AROONOSC\", 0) < (0)) __PYX_ERR(5, 319, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_AROONOSC\", 0, 2, 3, i); __PYX_ERR(5, 319, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_AROONOSC\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 319, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AROONOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 321, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 321, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_AROONOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 345, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_AROONOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 348, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AROONOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_385stream_ASIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384stream_ASIN, \"stream_ASIN(ndarray real)\\n\\nASIN(real)\\n\\nVector Trigonometric ASin (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_385stream_ASIN = {\"stream_ASIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384stream_ASIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_385stream_ASIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ASIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 351, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 351, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ASIN\", 0) < (0)) __PYX_ERR(5, 351, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ASIN\", 1, 1, 1, i); __PYX_ERR(5, 351, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 351, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ASIN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 351, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ASIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 353, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_384stream_ASIN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ASIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 370, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ASIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 376, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ASIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_387stream_ATAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386stream_ATAN, \"stream_ATAN(ndarray real)\\n\\nATAN(real)\\n\\nVector Trigonometric ATan (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_387stream_ATAN = {\"stream_ATAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386stream_ATAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_387stream_ATAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ATAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 378, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ATAN\", 0) < (0)) __PYX_ERR(5, 378, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ATAN\", 1, 1, 1, i); __PYX_ERR(5, 378, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ATAN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 378, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ATAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 380, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_386stream_ATAN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ATAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 397, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ATAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 402, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 403, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ATAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_389stream_ATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388stream_ATR, \"stream_ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nATR(high, low, close[, timeperiod=?])\\n\\nAverage True Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_389stream_ATR = {\"stream_ATR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388stream_ATR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_389stream_ATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ATR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 405, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 405, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 405, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 405, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 405, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ATR\", 0) < (0)) __PYX_ERR(5, 405, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ATR\", 0, 3, 4, i); __PYX_ERR(5, 405, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 405, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 405, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 405, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 405, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 407, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ATR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 405, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 407, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 407, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 407, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_388stream_ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ATR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 428, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 430, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 432, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 434, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 437, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 438, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390stream_AVGPRICE, \"stream_AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nAVGPRICE(open, high, low, close)\\n\\nAverage Price (Price Transform)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_391stream_AVGPRICE = {\"stream_AVGPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390stream_AVGPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_AVGPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 440, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_AVGPRICE\", 0) < (0)) __PYX_ERR(5, 440, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_AVGPRICE\", 1, 4, 4, i); __PYX_ERR(5, 440, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_AVGPRICE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 440, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AVGPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 442, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 442, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 442, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 442, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_AVGPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 462, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 464, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 466, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 468, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 470, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_AVGPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 473, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 474, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AVGPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392stream_AVGDEV, \"stream_AVGDEV(ndarray real, int timeperiod=-0x80000000)\\n\\nAVGDEV(real[, timeperiod=?])\\n\\nAverage Deviation (Price Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_393stream_AVGDEV = {\"stream_AVGDEV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392stream_AVGDEV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_AVGDEV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 476, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_AVGDEV\", 0) < (0)) __PYX_ERR(5, 476, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_AVGDEV\", 0, 1, 2, i); __PYX_ERR(5, 476, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 476, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 476, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 478, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_AVGDEV\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 476, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AVGDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 478, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_AVGDEV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 497, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_AVGDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 502, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 503, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_AVGDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_395stream_BBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394stream_BBANDS, \"stream_BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\\n\\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\\n\\nBollinger Bands (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdevup: 2.0\\n    nbdevdn: 2.0\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    upperband\\n    middleband\\n    lowerband\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_395stream_BBANDS = {\"stream_BBANDS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394stream_BBANDS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_395stream_BBANDS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdevup;\n  double __pyx_v_nbdevdn;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_BBANDS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 505, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_BBANDS\", 0) < (0)) __PYX_ERR(5, 505, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_BBANDS\", 0, 1, 5, i); __PYX_ERR(5, 505, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 505, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 505, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdevup = ((double)((double)-4e37));\n    }\n    if (values[3]) {\n      __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdevdn = ((double)((double)-4e37));\n    }\n    if (values[4]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_BBANDS\", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 505, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 507, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_394stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outrealupperband;\n  double __pyx_v_outrealmiddleband;\n  double __pyx_v_outreallowerband;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_BBANDS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 533, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_BBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 540, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 541, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 541, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 541, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 541, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 541, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 541, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 541, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BBANDS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_397stream_BETA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396stream_BETA, \"stream_BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\\n\\nBETA(real0, real1[, timeperiod=?])\\n\\nBeta (Statistic Functions)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nParameters:\\n    timeperiod: 5\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_397stream_BETA = {\"stream_BETA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396stream_BETA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_397stream_BETA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_BETA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 543, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 543, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 543, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 543, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_BETA\", 0) < (0)) __PYX_ERR(5, 543, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_BETA\", 0, 2, 3, i); __PYX_ERR(5, 543, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 543, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 543, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 543, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 545, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_BETA\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 543, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BETA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 545, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 545, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_396stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_396stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_BETA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 566, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 568, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 570, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_BETA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 573, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 574, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BETA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_399stream_BOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398stream_BOP, \"stream_BOP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nBOP(open, high, low, close)\\n\\nBalance Of Power (Momentum Indicators)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_399stream_BOP = {\"stream_BOP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398stream_BOP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_399stream_BOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_BOP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 576, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 576, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 576, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 576, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 576, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_BOP\", 0) < (0)) __PYX_ERR(5, 576, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_BOP\", 1, 4, 4, i); __PYX_ERR(5, 576, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 576, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 576, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 576, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 576, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_BOP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 576, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 578, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 578, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 578, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 578, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_398stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_398stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_BOP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 598, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 600, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 604, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 606, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_BOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 610, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_BOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CCI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400stream_CCI, \"stream_CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nCCI(high, low, close[, timeperiod=?])\\n\\nCommodity Channel Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_401stream_CCI = {\"stream_CCI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400stream_CCI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CCI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CCI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 612, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 612, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 612, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 612, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 612, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CCI\", 0) < (0)) __PYX_ERR(5, 612, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CCI\", 0, 3, 4, i); __PYX_ERR(5, 612, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 612, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 612, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 612, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 612, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 614, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CCI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 612, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CCI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 614, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 614, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 614, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_400stream_CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CCI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 635, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 637, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 639, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 641, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_CCI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 644, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 645, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CCI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402stream_CDL2CROWS, \"stream_CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL2CROWS(open, high, low, close)\\n\\nTwo Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_403stream_CDL2CROWS = {\"stream_CDL2CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402stream_CDL2CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL2CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 647, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 647, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 647, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 647, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 647, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL2CROWS\", 0) < (0)) __PYX_ERR(5, 647, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL2CROWS\", 1, 4, 4, i); __PYX_ERR(5, 647, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 647, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 647, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 647, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 647, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL2CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 647, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 649, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 649, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 649, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 649, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL2CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 669, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 671, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 673, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 675, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 677, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 680, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 681, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404stream_CDL3BLACKCROWS, \"stream_CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3BLACKCROWS(open, high, low, close)\\n\\nThree Black Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_405stream_CDL3BLACKCROWS = {\"stream_CDL3BLACKCROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404stream_CDL3BLACKCROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3BLACKCROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 683, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 683, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 683, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 683, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 683, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3BLACKCROWS\", 0) < (0)) __PYX_ERR(5, 683, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3BLACKCROWS\", 1, 4, 4, i); __PYX_ERR(5, 683, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 683, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 683, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 683, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 683, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3BLACKCROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 683, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3BLACKCROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 685, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 685, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 685, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 685, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3BLACKCROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 705, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 707, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 709, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 713, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3BLACKCROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 716, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3BLACKCROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406stream_CDL3INSIDE, \"stream_CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3INSIDE(open, high, low, close)\\n\\nThree Inside Up/Down (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_407stream_CDL3INSIDE = {\"stream_CDL3INSIDE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406stream_CDL3INSIDE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3INSIDE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 719, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3INSIDE\", 0) < (0)) __PYX_ERR(5, 719, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3INSIDE\", 1, 4, 4, i); __PYX_ERR(5, 719, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 719, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 719, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 719, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 719, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3INSIDE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 719, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3INSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 721, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 721, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 721, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 721, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3INSIDE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 741, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 743, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 745, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 747, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 749, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3INSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 752, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 753, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3INSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408stream_CDL3LINESTRIKE, \"stream_CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3LINESTRIKE(open, high, low, close)\\n\\nThree-Line Strike  (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_409stream_CDL3LINESTRIKE = {\"stream_CDL3LINESTRIKE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408stream_CDL3LINESTRIKE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3LINESTRIKE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 755, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 755, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 755, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 755, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 755, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3LINESTRIKE\", 0) < (0)) __PYX_ERR(5, 755, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3LINESTRIKE\", 1, 4, 4, i); __PYX_ERR(5, 755, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 755, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 755, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 755, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 755, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3LINESTRIKE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 755, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3LINESTRIKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 757, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 757, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 757, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 757, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3LINESTRIKE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 777, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 779, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 781, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 783, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 785, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3LINESTRIKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3LINESTRIKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410stream_CDL3OUTSIDE, \"stream_CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3OUTSIDE(open, high, low, close)\\n\\nThree Outside Up/Down (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_411stream_CDL3OUTSIDE = {\"stream_CDL3OUTSIDE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410stream_CDL3OUTSIDE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3OUTSIDE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 791, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 791, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 791, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 791, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 791, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3OUTSIDE\", 0) < (0)) __PYX_ERR(5, 791, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3OUTSIDE\", 1, 4, 4, i); __PYX_ERR(5, 791, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 791, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 791, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 791, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 791, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3OUTSIDE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 791, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3OUTSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 793, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 793, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 793, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 793, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3OUTSIDE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 813, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 815, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 817, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 819, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 821, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3OUTSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 825, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3OUTSIDE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH, \"stream_CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3STARSINSOUTH(open, high, low, close)\\n\\nThree Stars In The South (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH = {\"stream_CDL3STARSINSOUTH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3STARSINSOUTH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 827, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 827, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 827, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 827, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 827, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3STARSINSOUTH\", 0) < (0)) __PYX_ERR(5, 827, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3STARSINSOUTH\", 1, 4, 4, i); __PYX_ERR(5, 827, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 827, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 827, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 827, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 827, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3STARSINSOUTH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 827, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3STARSINSOUTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 829, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 829, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 829, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 829, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3STARSINSOUTH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 849, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 851, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 853, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 855, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 857, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3STARSINSOUTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 860, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 861, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3STARSINSOUTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS, \"stream_CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDL3WHITESOLDIERS(open, high, low, close)\\n\\nThree Advancing White Soldiers (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS = {\"stream_CDL3WHITESOLDIERS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDL3WHITESOLDIERS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 863, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 863, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 863, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 863, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 863, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDL3WHITESOLDIERS\", 0) < (0)) __PYX_ERR(5, 863, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDL3WHITESOLDIERS\", 1, 4, 4, i); __PYX_ERR(5, 863, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 863, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 863, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 863, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 863, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDL3WHITESOLDIERS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 863, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3WHITESOLDIERS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 865, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 865, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 865, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 865, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDL3WHITESOLDIERS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 885, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 889, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 891, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 893, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDL3WHITESOLDIERS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 896, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 897, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDL3WHITESOLDIERS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416stream_CDLABANDONEDBABY, \"stream_CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\\n\\nAbandoned Baby (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_417stream_CDLABANDONEDBABY = {\"stream_CDLABANDONEDBABY\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416stream_CDLABANDONEDBABY};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLABANDONEDBABY (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 899, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLABANDONEDBABY\", 0) < (0)) __PYX_ERR(5, 899, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLABANDONEDBABY\", 0, 4, 5, i); __PYX_ERR(5, 899, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 899, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 899, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 899, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 899, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 899, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 901, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLABANDONEDBABY\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 899, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLABANDONEDBABY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 901, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 901, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 901, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 901, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLABANDONEDBABY\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 923, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 925, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 927, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 929, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 931, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLABANDONEDBABY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 934, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 935, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLABANDONEDBABY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK, \"stream_CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLADVANCEBLOCK(open, high, low, close)\\n\\nAdvance Block (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK = {\"stream_CDLADVANCEBLOCK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLADVANCEBLOCK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 937, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 937, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 937, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 937, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 937, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLADVANCEBLOCK\", 0) < (0)) __PYX_ERR(5, 937, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLADVANCEBLOCK\", 1, 4, 4, i); __PYX_ERR(5, 937, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 937, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 937, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 937, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 937, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLADVANCEBLOCK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 937, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLADVANCEBLOCK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 939, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 939, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 939, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 939, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLADVANCEBLOCK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 959, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 961, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 963, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 965, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 967, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLADVANCEBLOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 970, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 971, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLADVANCEBLOCK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420stream_CDLBELTHOLD, \"stream_CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLBELTHOLD(open, high, low, close)\\n\\nBelt-hold (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_421stream_CDLBELTHOLD = {\"stream_CDLBELTHOLD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420stream_CDLBELTHOLD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLBELTHOLD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 973, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 973, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 973, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 973, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 973, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLBELTHOLD\", 0) < (0)) __PYX_ERR(5, 973, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLBELTHOLD\", 1, 4, 4, i); __PYX_ERR(5, 973, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 973, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 973, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 973, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 973, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLBELTHOLD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 973, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLBELTHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 975, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 975, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 975, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 975, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLBELTHOLD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 995, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 997, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 999, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1001, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1003, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLBELTHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1006, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1007, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLBELTHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422stream_CDLBREAKAWAY, \"stream_CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLBREAKAWAY(open, high, low, close)\\n\\nBreakaway (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_423stream_CDLBREAKAWAY = {\"stream_CDLBREAKAWAY\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422stream_CDLBREAKAWAY};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLBREAKAWAY (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1009, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1009, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1009, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1009, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1009, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLBREAKAWAY\", 0) < (0)) __PYX_ERR(5, 1009, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLBREAKAWAY\", 1, 4, 4, i); __PYX_ERR(5, 1009, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1009, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1009, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1009, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1009, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLBREAKAWAY\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1009, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLBREAKAWAY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1011, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1011, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1011, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1011, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLBREAKAWAY\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1031, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1033, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1035, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1037, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1039, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLBREAKAWAY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1042, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1043, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLBREAKAWAY\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU, \"stream_CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCLOSINGMARUBOZU(open, high, low, close)\\n\\nClosing Marubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU = {\"stream_CDLCLOSINGMARUBOZU\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLCLOSINGMARUBOZU (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1045, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLCLOSINGMARUBOZU\", 0) < (0)) __PYX_ERR(5, 1045, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLCLOSINGMARUBOZU\", 1, 4, 4, i); __PYX_ERR(5, 1045, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLCLOSINGMARUBOZU\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1045, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCLOSINGMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1047, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1047, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1047, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1047, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLCLOSINGMARUBOZU\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1067, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1069, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1071, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1073, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1075, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1078, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1079, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCLOSINGMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL, \"stream_CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCONCEALBABYSWALL(open, high, low, close)\\n\\nConcealing Baby Swallow (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL = {\"stream_CDLCONCEALBABYSWALL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLCONCEALBABYSWALL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1081, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1081, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1081, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1081, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1081, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLCONCEALBABYSWALL\", 0) < (0)) __PYX_ERR(5, 1081, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLCONCEALBABYSWALL\", 1, 4, 4, i); __PYX_ERR(5, 1081, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1081, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1081, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1081, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1081, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLCONCEALBABYSWALL\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1081, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCONCEALBABYSWALL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1083, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1083, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1083, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1083, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLCONCEALBABYSWALL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1103, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1105, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1107, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1109, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1111, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLCONCEALBABYSWALL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1114, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1115, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCONCEALBABYSWALL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK, \"stream_CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLCOUNTERATTACK(open, high, low, close)\\n\\nCounterattack (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK = {\"stream_CDLCOUNTERATTACK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLCOUNTERATTACK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1117, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1117, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLCOUNTERATTACK\", 0) < (0)) __PYX_ERR(5, 1117, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLCOUNTERATTACK\", 1, 4, 4, i); __PYX_ERR(5, 1117, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1117, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1117, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1117, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1117, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLCOUNTERATTACK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1117, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCOUNTERATTACK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1119, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1119, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1119, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1119, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLCOUNTERATTACK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1139, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1141, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1143, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1145, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1147, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLCOUNTERATTACK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1150, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLCOUNTERATTACK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER, \"stream_CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\\n\\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\\n\\nDark Cloud Cover (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.5\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER = {\"stream_CDLDARKCLOUDCOVER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLDARKCLOUDCOVER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1153, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLDARKCLOUDCOVER\", 0) < (0)) __PYX_ERR(5, 1153, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLDARKCLOUDCOVER\", 0, 4, 5, i); __PYX_ERR(5, 1153, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1153, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1155, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.5));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLDARKCLOUDCOVER\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1153, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDARKCLOUDCOVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1155, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1155, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1155, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1155, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLDARKCLOUDCOVER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1177, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1179, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1181, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1183, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1185, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLDARKCLOUDCOVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1188, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDARKCLOUDCOVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432stream_CDLDOJI, \"stream_CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDOJI(open, high, low, close)\\n\\nDoji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_433stream_CDLDOJI = {\"stream_CDLDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432stream_CDLDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1191, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1191, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1191, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1191, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1191, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLDOJI\", 0) < (0)) __PYX_ERR(5, 1191, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLDOJI\", 1, 4, 4, i); __PYX_ERR(5, 1191, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1191, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1191, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1191, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1191, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1191, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1193, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1193, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1193, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1193, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1213, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1215, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1217, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1219, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1221, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1225, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434stream_CDLDOJISTAR, \"stream_CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDOJISTAR(open, high, low, close)\\n\\nDoji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_435stream_CDLDOJISTAR = {\"stream_CDLDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434stream_CDLDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1227, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1227, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLDOJISTAR\", 0) < (0)) __PYX_ERR(5, 1227, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLDOJISTAR\", 1, 4, 4, i); __PYX_ERR(5, 1227, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1227, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1227, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1227, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1227, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLDOJISTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1227, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1229, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1229, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1229, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1229, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1249, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1251, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1253, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1257, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1261, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI, \"stream_CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLDRAGONFLYDOJI(open, high, low, close)\\n\\nDragonfly Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI = {\"stream_CDLDRAGONFLYDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLDRAGONFLYDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1263, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1263, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1263, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1263, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1263, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLDRAGONFLYDOJI\", 0) < (0)) __PYX_ERR(5, 1263, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLDRAGONFLYDOJI\", 1, 4, 4, i); __PYX_ERR(5, 1263, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1263, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1263, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1263, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1263, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLDRAGONFLYDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1263, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDRAGONFLYDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1265, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1265, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1265, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1265, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLDRAGONFLYDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1285, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1287, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1291, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1293, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLDRAGONFLYDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1296, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1297, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLDRAGONFLYDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438stream_CDLENGULFING, \"stream_CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLENGULFING(open, high, low, close)\\n\\nEngulfing Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_439stream_CDLENGULFING = {\"stream_CDLENGULFING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438stream_CDLENGULFING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLENGULFING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1299, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1299, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLENGULFING\", 0) < (0)) __PYX_ERR(5, 1299, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLENGULFING\", 1, 4, 4, i); __PYX_ERR(5, 1299, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1299, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1299, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1299, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1299, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLENGULFING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1299, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLENGULFING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1301, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1301, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1301, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1301, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLENGULFING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1321, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1323, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1325, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1327, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1329, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLENGULFING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1332, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1333, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLENGULFING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR, \"stream_CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\\n\\nEvening Doji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR = {\"stream_CDLEVENINGDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLEVENINGDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1335, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLEVENINGDOJISTAR\", 0) < (0)) __PYX_ERR(5, 1335, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLEVENINGDOJISTAR\", 0, 4, 5, i); __PYX_ERR(5, 1335, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1335, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1337, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLEVENINGDOJISTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1335, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLEVENINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1337, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1337, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1337, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1337, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLEVENINGDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1359, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1361, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1363, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1365, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1367, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLEVENINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1370, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1371, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLEVENINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442stream_CDLEVENINGSTAR, \"stream_CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\\n\\nEvening Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_443stream_CDLEVENINGSTAR = {\"stream_CDLEVENINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442stream_CDLEVENINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLEVENINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1373, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLEVENINGSTAR\", 0) < (0)) __PYX_ERR(5, 1373, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLEVENINGSTAR\", 0, 4, 5, i); __PYX_ERR(5, 1373, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1373, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1375, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLEVENINGSTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1373, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLEVENINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1375, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1375, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1375, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1375, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLEVENINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1397, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1399, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1401, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1403, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1405, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLEVENINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1408, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLEVENINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE, \"stream_CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLGAPSIDESIDEWHITE(open, high, low, close)\\n\\nUp/Down-gap side-by-side white lines (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE = {\"stream_CDLGAPSIDESIDEWHITE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLGAPSIDESIDEWHITE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1411, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1411, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1411, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1411, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1411, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLGAPSIDESIDEWHITE\", 0) < (0)) __PYX_ERR(5, 1411, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLGAPSIDESIDEWHITE\", 1, 4, 4, i); __PYX_ERR(5, 1411, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1411, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1411, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1411, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1411, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLGAPSIDESIDEWHITE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1411, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLGAPSIDESIDEWHITE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1413, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1413, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1413, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1413, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLGAPSIDESIDEWHITE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1433, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1435, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1437, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1439, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1441, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1444, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1445, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLGAPSIDESIDEWHITE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI, \"stream_CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLGRAVESTONEDOJI(open, high, low, close)\\n\\nGravestone Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI = {\"stream_CDLGRAVESTONEDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLGRAVESTONEDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1447, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1447, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1447, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1447, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1447, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLGRAVESTONEDOJI\", 0) < (0)) __PYX_ERR(5, 1447, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLGRAVESTONEDOJI\", 1, 4, 4, i); __PYX_ERR(5, 1447, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1447, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1447, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1447, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1447, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLGRAVESTONEDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1447, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLGRAVESTONEDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1449, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1449, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1449, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1449, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLGRAVESTONEDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1469, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1471, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1473, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1475, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1477, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLGRAVESTONEDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1480, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1481, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLGRAVESTONEDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_CDLHAMMER, \"stream_CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHAMMER(open, high, low, close)\\n\\nHammer (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_CDLHAMMER = {\"stream_CDLHAMMER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_CDLHAMMER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHAMMER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1483, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1483, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1483, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1483, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1483, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHAMMER\", 0) < (0)) __PYX_ERR(5, 1483, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHAMMER\", 1, 4, 4, i); __PYX_ERR(5, 1483, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1483, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1483, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1483, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1483, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHAMMER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1483, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1485, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1485, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1485, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1485, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHAMMER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1509, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1511, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1513, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1516, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1517, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_CDLHANGINGMAN, \"stream_CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHANGINGMAN(open, high, low, close)\\n\\nHanging Man (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_CDLHANGINGMAN = {\"stream_CDLHANGINGMAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_CDLHANGINGMAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHANGINGMAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1519, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1519, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1519, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1519, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1519, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHANGINGMAN\", 0) < (0)) __PYX_ERR(5, 1519, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHANGINGMAN\", 1, 4, 4, i); __PYX_ERR(5, 1519, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1519, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1519, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1519, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1519, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHANGINGMAN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1519, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHANGINGMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1521, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1521, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1521, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1521, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHANGINGMAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1541, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1543, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1545, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1547, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1549, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHANGINGMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1552, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1553, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHANGINGMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_CDLHARAMI, \"stream_CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHARAMI(open, high, low, close)\\n\\nHarami Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_CDLHARAMI = {\"stream_CDLHARAMI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_CDLHARAMI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHARAMI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1555, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1555, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1555, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1555, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1555, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHARAMI\", 0) < (0)) __PYX_ERR(5, 1555, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHARAMI\", 1, 4, 4, i); __PYX_ERR(5, 1555, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1555, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1555, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1555, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1555, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHARAMI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1555, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHARAMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1557, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1557, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1557, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1557, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHARAMI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1577, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1579, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1581, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1583, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1585, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHARAMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1588, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1589, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHARAMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_CDLHARAMICROSS, \"stream_CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHARAMICROSS(open, high, low, close)\\n\\nHarami Cross Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_CDLHARAMICROSS = {\"stream_CDLHARAMICROSS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_CDLHARAMICROSS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHARAMICROSS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1591, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1591, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1591, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1591, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1591, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHARAMICROSS\", 0) < (0)) __PYX_ERR(5, 1591, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHARAMICROSS\", 1, 4, 4, i); __PYX_ERR(5, 1591, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1591, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1591, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1591, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1591, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHARAMICROSS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1591, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHARAMICROSS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1593, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1593, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1593, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1593, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHARAMICROSS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1613, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1615, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1617, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1619, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1621, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHARAMICROSS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1624, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1625, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHARAMICROSS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_CDLHIGHWAVE, \"stream_CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIGHWAVE(open, high, low, close)\\n\\nHigh-Wave Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_CDLHIGHWAVE = {\"stream_CDLHIGHWAVE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_CDLHIGHWAVE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHIGHWAVE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1627, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1627, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1627, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1627, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1627, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHIGHWAVE\", 0) < (0)) __PYX_ERR(5, 1627, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIGHWAVE\", 1, 4, 4, i); __PYX_ERR(5, 1627, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1627, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1627, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1627, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1627, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIGHWAVE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1627, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIGHWAVE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1629, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1629, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1629, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1629, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHIGHWAVE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1649, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1653, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1655, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1657, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHIGHWAVE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1660, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1661, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIGHWAVE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_CDLHIKKAKE, \"stream_CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIKKAKE(open, high, low, close)\\n\\nHikkake Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_CDLHIKKAKE = {\"stream_CDLHIKKAKE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_CDLHIKKAKE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHIKKAKE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1663, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1663, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1663, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1663, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1663, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHIKKAKE\", 0) < (0)) __PYX_ERR(5, 1663, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIKKAKE\", 1, 4, 4, i); __PYX_ERR(5, 1663, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1663, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1663, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1663, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1663, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIKKAKE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1663, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIKKAKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1665, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1665, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1665, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1665, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHIKKAKE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1685, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1687, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1689, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1691, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1693, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHIKKAKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1696, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1697, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIKKAKE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD, \"stream_CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHIKKAKEMOD(open, high, low, close)\\n\\nModified Hikkake Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD = {\"stream_CDLHIKKAKEMOD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHIKKAKEMOD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1699, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHIKKAKEMOD\", 0) < (0)) __PYX_ERR(5, 1699, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIKKAKEMOD\", 1, 4, 4, i); __PYX_ERR(5, 1699, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHIKKAKEMOD\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1699, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIKKAKEMOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1701, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1701, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1701, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1701, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHIKKAKEMOD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1723, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1725, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1727, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1729, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHIKKAKEMOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1732, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1733, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHIKKAKEMOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON, \"stream_CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLHOMINGPIGEON(open, high, low, close)\\n\\nHoming Pigeon (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON = {\"stream_CDLHOMINGPIGEON\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLHOMINGPIGEON (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1735, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1735, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1735, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1735, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1735, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLHOMINGPIGEON\", 0) < (0)) __PYX_ERR(5, 1735, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLHOMINGPIGEON\", 1, 4, 4, i); __PYX_ERR(5, 1735, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1735, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1735, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1735, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1735, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLHOMINGPIGEON\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1735, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHOMINGPIGEON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1737, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1737, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1737, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1737, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLHOMINGPIGEON\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1757, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1761, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1763, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1765, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLHOMINGPIGEON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1768, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1769, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLHOMINGPIGEON\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS, \"stream_CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLIDENTICAL3CROWS(open, high, low, close)\\n\\nIdentical Three Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS = {\"stream_CDLIDENTICAL3CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLIDENTICAL3CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1771, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1771, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1771, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1771, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1771, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLIDENTICAL3CROWS\", 0) < (0)) __PYX_ERR(5, 1771, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLIDENTICAL3CROWS\", 1, 4, 4, i); __PYX_ERR(5, 1771, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1771, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1771, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1771, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1771, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLIDENTICAL3CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1771, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLIDENTICAL3CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1773, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1773, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1773, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1773, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLIDENTICAL3CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1793, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1795, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1797, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1799, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1801, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLIDENTICAL3CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1804, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1805, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLIDENTICAL3CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_CDLINNECK, \"stream_CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLINNECK(open, high, low, close)\\n\\nIn-Neck Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_CDLINNECK = {\"stream_CDLINNECK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_CDLINNECK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLINNECK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1807, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1807, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLINNECK\", 0) < (0)) __PYX_ERR(5, 1807, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLINNECK\", 1, 4, 4, i); __PYX_ERR(5, 1807, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1807, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1807, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1807, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1807, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLINNECK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1807, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLINNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1809, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1809, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLINNECK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1829, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1831, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1833, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1835, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1837, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLINNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1840, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1841, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLINNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER, \"stream_CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLINVERTEDHAMMER(open, high, low, close)\\n\\nInverted Hammer (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER = {\"stream_CDLINVERTEDHAMMER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLINVERTEDHAMMER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1843, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1843, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1843, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1843, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1843, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLINVERTEDHAMMER\", 0) < (0)) __PYX_ERR(5, 1843, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLINVERTEDHAMMER\", 1, 4, 4, i); __PYX_ERR(5, 1843, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1843, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1843, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1843, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1843, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLINVERTEDHAMMER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1843, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLINVERTEDHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1845, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1845, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1845, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1845, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLINVERTEDHAMMER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1865, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1867, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1869, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1871, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1873, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLINVERTEDHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1876, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1877, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLINVERTEDHAMMER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_CDLKICKING, \"stream_CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLKICKING(open, high, low, close)\\n\\nKicking (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_CDLKICKING = {\"stream_CDLKICKING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_CDLKICKING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLKICKING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1879, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1879, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1879, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1879, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1879, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLKICKING\", 0) < (0)) __PYX_ERR(5, 1879, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLKICKING\", 1, 4, 4, i); __PYX_ERR(5, 1879, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1879, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1879, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1879, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1879, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLKICKING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1879, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLKICKING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1881, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1881, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1881, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1881, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLKICKING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1901, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1903, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1905, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1907, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1909, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLKICKING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1912, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLKICKING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH, \"stream_CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLKICKINGBYLENGTH(open, high, low, close)\\n\\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH = {\"stream_CDLKICKINGBYLENGTH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLKICKINGBYLENGTH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1915, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1915, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1915, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1915, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1915, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLKICKINGBYLENGTH\", 0) < (0)) __PYX_ERR(5, 1915, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLKICKINGBYLENGTH\", 1, 4, 4, i); __PYX_ERR(5, 1915, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1915, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1915, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1915, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1915, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLKICKINGBYLENGTH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1915, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLKICKINGBYLENGTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1917, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1917, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1917, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1917, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLKICKINGBYLENGTH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1937, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1939, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1941, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1943, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1945, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLKICKINGBYLENGTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1948, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1949, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLKICKINGBYLENGTH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM, \"stream_CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLADDERBOTTOM(open, high, low, close)\\n\\nLadder Bottom (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM = {\"stream_CDLLADDERBOTTOM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLLADDERBOTTOM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1951, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1951, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1951, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1951, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1951, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLLADDERBOTTOM\", 0) < (0)) __PYX_ERR(5, 1951, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLLADDERBOTTOM\", 1, 4, 4, i); __PYX_ERR(5, 1951, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1951, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1951, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1951, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1951, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLLADDERBOTTOM\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1951, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLADDERBOTTOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1953, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1953, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1953, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1953, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLLADDERBOTTOM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1973, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1975, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1977, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1979, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1981, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLLADDERBOTTOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1984, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1985, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLADDERBOTTOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI, \"stream_CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLONGLEGGEDDOJI(open, high, low, close)\\n\\nLong Legged Doji (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI = {\"stream_CDLLONGLEGGEDDOJI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLLONGLEGGEDDOJI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 1987, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1987, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1987, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1987, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1987, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLLONGLEGGEDDOJI\", 0) < (0)) __PYX_ERR(5, 1987, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLLONGLEGGEDDOJI\", 1, 4, 4, i); __PYX_ERR(5, 1987, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1987, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1987, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1987, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1987, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLLONGLEGGEDDOJI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1987, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLONGLEGGEDDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 1989, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 1989, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 1989, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 1989, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLLONGLEGGEDDOJI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2009, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2011, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2013, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2015, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2017, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2020, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2021, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLONGLEGGEDDOJI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_CDLLONGLINE, \"stream_CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLLONGLINE(open, high, low, close)\\n\\nLong Line Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_CDLLONGLINE = {\"stream_CDLLONGLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_CDLLONGLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLLONGLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2023, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2023, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2023, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2023, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2023, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLLONGLINE\", 0) < (0)) __PYX_ERR(5, 2023, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLLONGLINE\", 1, 4, 4, i); __PYX_ERR(5, 2023, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2023, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2023, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2023, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2023, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLLONGLINE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2023, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLONGLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2025, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2025, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2025, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2025, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLLONGLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2045, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2049, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2051, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2053, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLLONGLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2056, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2057, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLLONGLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_CDLMARUBOZU, \"stream_CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLMARUBOZU(open, high, low, close)\\n\\nMarubozu (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_CDLMARUBOZU = {\"stream_CDLMARUBOZU\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_CDLMARUBOZU};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLMARUBOZU (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2059, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2059, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2059, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2059, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2059, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLMARUBOZU\", 0) < (0)) __PYX_ERR(5, 2059, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLMARUBOZU\", 1, 4, 4, i); __PYX_ERR(5, 2059, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2059, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2059, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2059, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2059, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLMARUBOZU\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2059, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2061, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2061, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2061, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2061, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLMARUBOZU\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2081, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2083, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2085, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2087, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2089, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2092, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2093, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMARUBOZU\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_CDLMATCHINGLOW, \"stream_CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLMATCHINGLOW(open, high, low, close)\\n\\nMatching Low (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_CDLMATCHINGLOW = {\"stream_CDLMATCHINGLOW\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_CDLMATCHINGLOW};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLMATCHINGLOW (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2095, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLMATCHINGLOW\", 0) < (0)) __PYX_ERR(5, 2095, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLMATCHINGLOW\", 1, 4, 4, i); __PYX_ERR(5, 2095, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2095, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2095, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2095, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2095, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLMATCHINGLOW\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2095, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMATCHINGLOW\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2097, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2097, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2097, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2097, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLMATCHINGLOW\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2123, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2125, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLMATCHINGLOW((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2128, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2129, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMATCHINGLOW\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_CDLMATHOLD, \"stream_CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\\n\\nCDLMATHOLD(open, high, low, close[, penetration=?])\\n\\nMat Hold (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.5\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_CDLMATHOLD = {\"stream_CDLMATHOLD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_CDLMATHOLD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLMATHOLD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2131, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLMATHOLD\", 0) < (0)) __PYX_ERR(5, 2131, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLMATHOLD\", 0, 4, 5, i); __PYX_ERR(5, 2131, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2131, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2133, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.5));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLMATHOLD\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2131, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMATHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2133, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLMATHOLD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2155, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2157, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2159, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2161, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2163, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLMATHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2166, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2167, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMATHOLD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR, \"stream_CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\\n\\nMorning Doji Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR = {\"stream_CDLMORNINGDOJISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLMORNINGDOJISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2169, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLMORNINGDOJISTAR\", 0) < (0)) __PYX_ERR(5, 2169, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLMORNINGDOJISTAR\", 0, 4, 5, i); __PYX_ERR(5, 2169, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2169, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2171, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLMORNINGDOJISTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2169, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMORNINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2171, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2171, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2171, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2171, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLMORNINGDOJISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2193, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2195, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2197, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2199, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2201, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLMORNINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2204, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2205, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMORNINGDOJISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CDLMORNINGSTAR, \"stream_CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\\n\\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\\n\\nMorning Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nParameters:\\n    penetration: 0.3\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CDLMORNINGSTAR = {\"stream_CDLMORNINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CDLMORNINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  double __pyx_v_penetration;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLMORNINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2207, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLMORNINGSTAR\", 0) < (0)) __PYX_ERR(5, 2207, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLMORNINGSTAR\", 0, 4, 5, i); __PYX_ERR(5, 2207, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2207, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2209, __pyx_L3_error)\n    } else {\n      __pyx_v_penetration = ((double)((double)0.3));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLMORNINGSTAR\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2207, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMORNINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2209, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2209, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2209, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2209, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLMORNINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2231, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2233, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2235, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2237, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2239, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLMORNINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2242, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2243, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLMORNINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDLONNECK, \"stream_CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLONNECK(open, high, low, close)\\n\\nOn-Neck Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDLONNECK = {\"stream_CDLONNECK\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDLONNECK};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLONNECK (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2245, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2245, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2245, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2245, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2245, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLONNECK\", 0) < (0)) __PYX_ERR(5, 2245, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLONNECK\", 1, 4, 4, i); __PYX_ERR(5, 2245, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2245, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2245, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2245, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2245, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLONNECK\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2245, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLONNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2247, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2247, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2247, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2247, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLONNECK\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2267, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2269, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2271, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2273, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2275, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLONNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2278, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLONNECK\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDLPIERCING, \"stream_CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLPIERCING(open, high, low, close)\\n\\nPiercing Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDLPIERCING = {\"stream_CDLPIERCING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDLPIERCING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLPIERCING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2281, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2281, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2281, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2281, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2281, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLPIERCING\", 0) < (0)) __PYX_ERR(5, 2281, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLPIERCING\", 1, 4, 4, i); __PYX_ERR(5, 2281, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2281, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2281, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2281, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2281, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLPIERCING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2281, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLPIERCING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2283, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2283, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2283, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2283, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLPIERCING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2303, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2305, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2307, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2309, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2311, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLPIERCING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2314, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2315, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLPIERCING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN, \"stream_CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLRICKSHAWMAN(open, high, low, close)\\n\\nRickshaw Man (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN = {\"stream_CDLRICKSHAWMAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLRICKSHAWMAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2317, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2317, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2317, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2317, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2317, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLRICKSHAWMAN\", 0) < (0)) __PYX_ERR(5, 2317, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLRICKSHAWMAN\", 1, 4, 4, i); __PYX_ERR(5, 2317, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2317, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2317, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2317, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2317, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLRICKSHAWMAN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2317, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLRICKSHAWMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2319, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2319, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2319, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2319, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLRICKSHAWMAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2339, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2345, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2347, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLRICKSHAWMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2350, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2351, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLRICKSHAWMAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS, \"stream_CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLRISEFALL3METHODS(open, high, low, close)\\n\\nRising/Falling Three Methods (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS = {\"stream_CDLRISEFALL3METHODS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLRISEFALL3METHODS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2353, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2353, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2353, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2353, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2353, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLRISEFALL3METHODS\", 0) < (0)) __PYX_ERR(5, 2353, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLRISEFALL3METHODS\", 1, 4, 4, i); __PYX_ERR(5, 2353, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2353, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2353, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2353, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2353, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLRISEFALL3METHODS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2353, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLRISEFALL3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2355, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2355, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2355, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2355, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLRISEFALL3METHODS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2377, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2379, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2381, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2383, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLRISEFALL3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2386, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2387, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLRISEFALL3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES, \"stream_CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSEPARATINGLINES(open, high, low, close)\\n\\nSeparating Lines (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES = {\"stream_CDLSEPARATINGLINES\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSEPARATINGLINES (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2389, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2389, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2389, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2389, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2389, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSEPARATINGLINES\", 0) < (0)) __PYX_ERR(5, 2389, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSEPARATINGLINES\", 1, 4, 4, i); __PYX_ERR(5, 2389, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2389, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2389, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2389, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2389, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSEPARATINGLINES\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2389, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSEPARATINGLINES\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2391, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2391, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2391, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2391, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSEPARATINGLINES\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2411, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2413, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2415, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2417, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2419, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSEPARATINGLINES((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2422, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2423, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSEPARATINGLINES\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR, \"stream_CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSHOOTINGSTAR(open, high, low, close)\\n\\nShooting Star (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR = {\"stream_CDLSHOOTINGSTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSHOOTINGSTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2425, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2425, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSHOOTINGSTAR\", 0) < (0)) __PYX_ERR(5, 2425, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSHOOTINGSTAR\", 1, 4, 4, i); __PYX_ERR(5, 2425, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2425, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2425, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2425, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2425, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSHOOTINGSTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2425, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSHOOTINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2427, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2427, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2427, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2427, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSHOOTINGSTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2447, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2449, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2451, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2453, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2455, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSHOOTINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2458, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2459, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSHOOTINGSTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDLSHORTLINE, \"stream_CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSHORTLINE(open, high, low, close)\\n\\nShort Line Candle (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDLSHORTLINE = {\"stream_CDLSHORTLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDLSHORTLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSHORTLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2461, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2461, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2461, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2461, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2461, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSHORTLINE\", 0) < (0)) __PYX_ERR(5, 2461, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSHORTLINE\", 1, 4, 4, i); __PYX_ERR(5, 2461, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2461, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2461, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2461, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2461, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSHORTLINE\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2461, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSHORTLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2463, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2463, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2463, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2463, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSHORTLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2483, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2485, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2487, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2489, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2491, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSHORTLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2495, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSHORTLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLSPINNINGTOP, \"stream_CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSPINNINGTOP(open, high, low, close)\\n\\nSpinning Top (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLSPINNINGTOP = {\"stream_CDLSPINNINGTOP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLSPINNINGTOP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSPINNINGTOP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2497, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2497, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2497, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2497, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2497, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSPINNINGTOP\", 0) < (0)) __PYX_ERR(5, 2497, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSPINNINGTOP\", 1, 4, 4, i); __PYX_ERR(5, 2497, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2497, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2497, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2497, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2497, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSPINNINGTOP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2497, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSPINNINGTOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2499, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2499, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2499, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2499, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSPINNINGTOP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2519, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2523, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2525, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2527, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSPINNINGTOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2530, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2531, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSPINNINGTOP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN, \"stream_CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSTALLEDPATTERN(open, high, low, close)\\n\\nStalled Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN = {\"stream_CDLSTALLEDPATTERN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSTALLEDPATTERN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2533, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2533, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2533, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2533, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2533, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSTALLEDPATTERN\", 0) < (0)) __PYX_ERR(5, 2533, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSTALLEDPATTERN\", 1, 4, 4, i); __PYX_ERR(5, 2533, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2533, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2533, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2533, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2533, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSTALLEDPATTERN\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2533, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSTALLEDPATTERN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2535, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2535, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2535, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2535, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSTALLEDPATTERN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2555, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2557, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2559, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2561, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2563, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSTALLEDPATTERN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2566, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSTALLEDPATTERN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH, \"stream_CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLSTICKSANDWICH(open, high, low, close)\\n\\nStick Sandwich (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH = {\"stream_CDLSTICKSANDWICH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLSTICKSANDWICH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2569, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2569, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2569, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2569, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2569, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLSTICKSANDWICH\", 0) < (0)) __PYX_ERR(5, 2569, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLSTICKSANDWICH\", 1, 4, 4, i); __PYX_ERR(5, 2569, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2569, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2569, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2569, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2569, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLSTICKSANDWICH\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2569, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSTICKSANDWICH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2571, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2571, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2571, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2571, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLSTICKSANDWICH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2591, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2593, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2595, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2597, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2599, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLSTICKSANDWICH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2603, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLSTICKSANDWICH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLTAKURI, \"stream_CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTAKURI(open, high, low, close)\\n\\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLTAKURI = {\"stream_CDLTAKURI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLTAKURI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLTAKURI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2605, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2605, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLTAKURI\", 0) < (0)) __PYX_ERR(5, 2605, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLTAKURI\", 1, 4, 4, i); __PYX_ERR(5, 2605, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2605, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2605, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2605, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2605, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLTAKURI\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2605, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTAKURI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2607, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2607, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2607, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2607, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLTAKURI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2627, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2631, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2633, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2635, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLTAKURI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2638, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2639, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTAKURI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLTASUKIGAP, \"stream_CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTASUKIGAP(open, high, low, close)\\n\\nTasuki Gap (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLTASUKIGAP = {\"stream_CDLTASUKIGAP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLTASUKIGAP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLTASUKIGAP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2641, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2641, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2641, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2641, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2641, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLTASUKIGAP\", 0) < (0)) __PYX_ERR(5, 2641, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLTASUKIGAP\", 1, 4, 4, i); __PYX_ERR(5, 2641, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2641, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2641, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2641, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2641, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLTASUKIGAP\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2641, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTASUKIGAP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2643, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2643, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2643, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2643, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLTASUKIGAP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2663, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2665, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2667, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2669, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2671, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLTASUKIGAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2674, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2675, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTASUKIGAP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CDLTHRUSTING, \"stream_CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTHRUSTING(open, high, low, close)\\n\\nThrusting Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CDLTHRUSTING = {\"stream_CDLTHRUSTING\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CDLTHRUSTING};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLTHRUSTING (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2677, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2677, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLTHRUSTING\", 0) < (0)) __PYX_ERR(5, 2677, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLTHRUSTING\", 1, 4, 4, i); __PYX_ERR(5, 2677, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2677, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2677, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2677, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2677, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLTHRUSTING\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2677, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTHRUSTING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2679, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2679, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2679, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2679, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLTHRUSTING\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2699, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2701, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2703, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2705, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2707, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLTHRUSTING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2710, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTHRUSTING\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CDLTRISTAR, \"stream_CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLTRISTAR(open, high, low, close)\\n\\nTristar Pattern (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CDLTRISTAR = {\"stream_CDLTRISTAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CDLTRISTAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLTRISTAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2713, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2713, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2713, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2713, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2713, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLTRISTAR\", 0) < (0)) __PYX_ERR(5, 2713, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLTRISTAR\", 1, 4, 4, i); __PYX_ERR(5, 2713, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2713, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2713, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2713, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2713, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLTRISTAR\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2713, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTRISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2715, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2715, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2715, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2715, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLTRISTAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2735, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2737, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2739, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2741, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2743, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLTRISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2747, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLTRISTAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER, \"stream_CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLUNIQUE3RIVER(open, high, low, close)\\n\\nUnique 3 River (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER = {\"stream_CDLUNIQUE3RIVER\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLUNIQUE3RIVER (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2749, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2749, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLUNIQUE3RIVER\", 0) < (0)) __PYX_ERR(5, 2749, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLUNIQUE3RIVER\", 1, 4, 4, i); __PYX_ERR(5, 2749, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2749, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2749, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2749, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2749, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLUNIQUE3RIVER\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2749, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLUNIQUE3RIVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2751, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2751, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2751, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2751, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLUNIQUE3RIVER\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2771, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2773, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2775, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2777, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2779, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLUNIQUE3RIVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2782, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2783, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLUNIQUE3RIVER\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS, \"stream_CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLUPSIDEGAP2CROWS(open, high, low, close)\\n\\nUpside Gap Two Crows (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS = {\"stream_CDLUPSIDEGAP2CROWS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLUPSIDEGAP2CROWS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2785, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2785, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2785, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2785, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2785, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLUPSIDEGAP2CROWS\", 0) < (0)) __PYX_ERR(5, 2785, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLUPSIDEGAP2CROWS\", 1, 4, 4, i); __PYX_ERR(5, 2785, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2785, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2785, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2785, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2785, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLUPSIDEGAP2CROWS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2785, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLUPSIDEGAP2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2787, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2787, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2787, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2787, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLUPSIDEGAP2CROWS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2807, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2809, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2811, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2813, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2815, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2818, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2819, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLUPSIDEGAP2CROWS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS, \"stream_CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\\n\\nCDLXSIDEGAP3METHODS(open, high, low, close)\\n\\nUpside/Downside Gap Three Methods (Pattern Recognition)\\n\\nInputs:\\n    prices: ['open', 'high', 'low', 'close']\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS = {\"stream_CDLXSIDEGAP3METHODS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CDLXSIDEGAP3METHODS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2821, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2821, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2821, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2821, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2821, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CDLXSIDEGAP3METHODS\", 0) < (0)) __PYX_ERR(5, 2821, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CDLXSIDEGAP3METHODS\", 1, 4, 4, i); __PYX_ERR(5, 2821, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 4)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2821, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2821, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2821, __pyx_L3_error)\n      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2821, __pyx_L3_error)\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_high = ((PyArrayObject *)values[1]);\n    __pyx_v_low = ((PyArrayObject *)values[2]);\n    __pyx_v_close = ((PyArrayObject *)values[3]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CDLXSIDEGAP3METHODS\", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2821, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLXSIDEGAP3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 2823, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 2823, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 2823, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 2823, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CDLXSIDEGAP3METHODS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2843, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2845, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2847, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2849, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2851, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2854, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2855, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CDLXSIDEGAP3METHODS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CEIL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_CEIL, \"stream_CEIL(ndarray real)\\n\\nCEIL(real)\\n\\nVector Ceil (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_CEIL = {\"stream_CEIL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_CEIL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CEIL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CEIL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2857, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2857, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CEIL\", 0) < (0)) __PYX_ERR(5, 2857, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CEIL\", 1, 1, 1, i); __PYX_ERR(5, 2857, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2857, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CEIL\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2857, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CEIL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 2859, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_CEIL(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CEIL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2876, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_CEIL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CEIL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CMO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_CMO, \"stream_CMO(ndarray real, int timeperiod=-0x80000000)\\n\\nCMO(real[, timeperiod=?])\\n\\nChande Momentum Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_CMO = {\"stream_CMO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_CMO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CMO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CMO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2884, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CMO\", 0) < (0)) __PYX_ERR(5, 2884, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CMO\", 0, 1, 2, i); __PYX_ERR(5, 2884, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2886, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CMO\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2884, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CMO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 2886, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CMO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2905, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_CMO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2910, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2911, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CMO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CORREL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_CORREL, \"stream_CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\\n\\nCORREL(real0, real1[, timeperiod=?])\\n\\nPearson's Correlation Coefficient (r) (Statistic Functions)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_CORREL = {\"stream_CORREL\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_CORREL};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CORREL(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_CORREL (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2913, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_CORREL\", 0) < (0)) __PYX_ERR(5, 2913, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_CORREL\", 0, 2, 3, i); __PYX_ERR(5, 2913, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2913, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2915, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_CORREL\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 2913, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CORREL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 2915, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 2915, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_CORREL\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2936, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2938, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2940, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_CORREL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2943, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2944, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_CORREL\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_531stream_COS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_COS, \"stream_COS(ndarray real)\\n\\nCOS(real)\\n\\nVector Trigonometric Cos (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_COS = {\"stream_COS\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_COS};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_531stream_COS(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_COS (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2946, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2946, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_COS\", 0) < (0)) __PYX_ERR(5, 2946, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_COS\", 1, 1, 1, i); __PYX_ERR(5, 2946, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2946, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_COS\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2946, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_COS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 2948, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_COS(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_COS\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2965, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_COS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2970, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2971, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_COS\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_533stream_COSH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_COSH, \"stream_COSH(ndarray real)\\n\\nCOSH(real)\\n\\nVector Trigonometric Cosh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_COSH = {\"stream_COSH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_COSH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_533stream_COSH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_COSH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 2973, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2973, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_COSH\", 0) < (0)) __PYX_ERR(5, 2973, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_COSH\", 1, 1, 1, i); __PYX_ERR(5, 2973, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2973, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_COSH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2973, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_COSH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 2975, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_COSH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_COSH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2992, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_COSH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2997, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2998, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_COSH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_535stream_DEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_DEMA, \"stream_DEMA(ndarray real, int timeperiod=-0x80000000)\\n\\nDEMA(real[, timeperiod=?])\\n\\nDouble Exponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_DEMA = {\"stream_DEMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_DEMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_535stream_DEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_DEMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3000, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3000, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3000, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_DEMA\", 0) < (0)) __PYX_ERR(5, 3000, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_DEMA\", 0, 1, 2, i); __PYX_ERR(5, 3000, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3000, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3000, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3002, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_DEMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3000, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3002, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_DEMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3021, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_DEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3026, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3027, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_537stream_DIV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_DIV, \"stream_DIV(ndarray real0, ndarray real1)\\n\\nDIV(real0, real1)\\n\\nVector Arithmetic Div (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_DIV = {\"stream_DIV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_DIV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_537stream_DIV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_DIV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3029, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3029, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3029, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_DIV\", 0) < (0)) __PYX_ERR(5, 3029, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_DIV\", 1, 2, 2, i); __PYX_ERR(5, 3029, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3029, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3029, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_DIV\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3029, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DIV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 3031, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 3031, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_DIV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3050, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3052, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3054, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_DIV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3057, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3058, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DIV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_539stream_DX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_DX, \"stream_DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nDX(high, low, close[, timeperiod=?])\\n\\nDirectional Movement Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_DX = {\"stream_DX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_DX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_539stream_DX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_DX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3060, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_DX\", 0) < (0)) __PYX_ERR(5, 3060, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_DX\", 0, 3, 4, i); __PYX_ERR(5, 3060, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3060, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3062, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_DX\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3060, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 3062, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 3062, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 3062, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_DX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3083, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3085, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3087, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3089, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_DX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3092, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3093, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_DX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_541stream_EMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_EMA, \"stream_EMA(ndarray real, int timeperiod=-0x80000000)\\n\\nEMA(real[, timeperiod=?])\\n\\nExponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_EMA = {\"stream_EMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_EMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_541stream_EMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_EMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3095, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_EMA\", 0) < (0)) __PYX_ERR(5, 3095, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_EMA\", 0, 1, 2, i); __PYX_ERR(5, 3095, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3095, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3095, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3097, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_EMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3095, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_EMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3097, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_EMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3116, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_EMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3122, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_EMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_543stream_EXP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_EXP, \"stream_EXP(ndarray real)\\n\\nEXP(real)\\n\\nVector Arithmetic Exp (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_EXP = {\"stream_EXP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_EXP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_543stream_EXP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_EXP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3124, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3124, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_EXP\", 0) < (0)) __PYX_ERR(5, 3124, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_EXP\", 1, 1, 1, i); __PYX_ERR(5, 3124, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3124, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_EXP\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3124, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_EXP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3126, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_EXP(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_EXP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3143, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_EXP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3148, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3149, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_EXP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_545stream_FLOOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_FLOOR, \"stream_FLOOR(ndarray real)\\n\\nFLOOR(real)\\n\\nVector Floor (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_FLOOR = {\"stream_FLOOR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_FLOOR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_545stream_FLOOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_FLOOR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3151, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3151, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_FLOOR\", 0) < (0)) __PYX_ERR(5, 3151, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_FLOOR\", 1, 1, 1, i); __PYX_ERR(5, 3151, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3151, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_FLOOR\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3151, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_FLOOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3153, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_FLOOR(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_FLOOR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3170, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_FLOOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3175, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3176, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_FLOOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_HT_DCPERIOD, \"stream_HT_DCPERIOD(ndarray real)\\n\\nHT_DCPERIOD(real)\\n\\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_HT_DCPERIOD = {\"stream_HT_DCPERIOD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_HT_DCPERIOD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_DCPERIOD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3178, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3178, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_DCPERIOD\", 0) < (0)) __PYX_ERR(5, 3178, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_DCPERIOD\", 1, 1, 1, i); __PYX_ERR(5, 3178, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3178, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_DCPERIOD\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3178, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_DCPERIOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3180, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_DCPERIOD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3197, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_HT_DCPERIOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3202, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3203, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_DCPERIOD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_HT_DCPHASE, \"stream_HT_DCPHASE(ndarray real)\\n\\nHT_DCPHASE(real)\\n\\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_HT_DCPHASE = {\"stream_HT_DCPHASE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_HT_DCPHASE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_DCPHASE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3205, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3205, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_DCPHASE\", 0) < (0)) __PYX_ERR(5, 3205, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_DCPHASE\", 1, 1, 1, i); __PYX_ERR(5, 3205, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3205, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_DCPHASE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3205, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_DCPHASE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3207, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_DCPHASE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_HT_DCPHASE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3229, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3230, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_DCPHASE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_HT_PHASOR, \"stream_HT_PHASOR(ndarray real)\\n\\nHT_PHASOR(real)\\n\\nHilbert Transform - Phasor Components (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    inphase\\n    quadrature\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_HT_PHASOR = {\"stream_HT_PHASOR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_HT_PHASOR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_PHASOR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3232, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3232, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_PHASOR\", 0) < (0)) __PYX_ERR(5, 3232, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_PHASOR\", 1, 1, 1, i); __PYX_ERR(5, 3232, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3232, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_PHASOR\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3232, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_PHASOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3234, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outinphase;\n  double __pyx_v_outquadrature;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_PHASOR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3253, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_HT_PHASOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinphase), (&__pyx_v_outquadrature));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3259, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3260, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3260, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_PHASOR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_HT_SINE, \"stream_HT_SINE(ndarray real)\\n\\nHT_SINE(real)\\n\\nHilbert Transform - SineWave (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    sine\\n    leadsine\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_HT_SINE = {\"stream_HT_SINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_HT_SINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_SINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3262, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_SINE\", 0) < (0)) __PYX_ERR(5, 3262, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_SINE\", 1, 1, 1, i); __PYX_ERR(5, 3262, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_SINE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3262, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_SINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3264, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outsine;\n  double __pyx_v_outleadsine;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_SINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3283, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_HT_SINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsine), (&__pyx_v_outleadsine));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3290, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3290, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3290, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3290, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3290, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_SINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_HT_TRENDLINE, \"stream_HT_TRENDLINE(ndarray real)\\n\\nHT_TRENDLINE(real)\\n\\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_HT_TRENDLINE = {\"stream_HT_TRENDLINE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_HT_TRENDLINE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_TRENDLINE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3292, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3292, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_TRENDLINE\", 0) < (0)) __PYX_ERR(5, 3292, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_TRENDLINE\", 1, 1, 1, i); __PYX_ERR(5, 3292, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3292, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_TRENDLINE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3292, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_TRENDLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3294, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_TRENDLINE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3311, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_HT_TRENDLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3316, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3317, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_TRENDLINE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_HT_TRENDMODE, \"stream_HT_TRENDMODE(ndarray real)\\n\\nHT_TRENDMODE(real)\\n\\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_HT_TRENDMODE = {\"stream_HT_TRENDMODE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_HT_TRENDMODE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_HT_TRENDMODE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3319, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3319, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_HT_TRENDMODE\", 0) < (0)) __PYX_ERR(5, 3319, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_HT_TRENDMODE\", 1, 1, 1, i); __PYX_ERR(5, 3319, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3319, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_HT_TRENDMODE\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3319, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_TRENDMODE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3321, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_HT_TRENDMODE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3338, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_HT_TRENDMODE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3344, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_HT_TRENDMODE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_559stream_IMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_IMI, \"stream_IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\\n\\nIMI(open, close[, timeperiod=?])\\n\\nIntraday Momentum Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['open', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_IMI = {\"stream_IMI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_IMI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_559stream_IMI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_open = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_IMI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3346, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_IMI\", 0) < (0)) __PYX_ERR(5, 3346, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_IMI\", 0, 2, 3, i); __PYX_ERR(5, 3346, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3346, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_open = ((PyArrayObject *)values[0]);\n    __pyx_v_close = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3348, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_IMI\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3346, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_IMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"open\", 0))) __PYX_ERR(5, 3348, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 3348, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_open_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_IMI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_open);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3368, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3370, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3372, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_IMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3376, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_IMI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_open);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_561stream_KAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_KAMA, \"stream_KAMA(ndarray real, int timeperiod=-0x80000000)\\n\\nKAMA(real[, timeperiod=?])\\n\\nKaufman Adaptive Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_KAMA = {\"stream_KAMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_KAMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_561stream_KAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_KAMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3378, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_KAMA\", 0) < (0)) __PYX_ERR(5, 3378, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_KAMA\", 0, 1, 2, i); __PYX_ERR(5, 3378, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3378, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3378, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3380, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_KAMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3378, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_KAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3380, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_KAMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3399, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_KAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3404, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3405, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_KAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_LINEARREG, \"stream_LINEARREG(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG(real[, timeperiod=?])\\n\\nLinear Regression (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_LINEARREG = {\"stream_LINEARREG\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_LINEARREG};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3407, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LINEARREG\", 0) < (0)) __PYX_ERR(5, 3407, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG\", 0, 1, 2, i); __PYX_ERR(5, 3407, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3407, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3407, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3409, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3407, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3409, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3428, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LINEARREG((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3433, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3434, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_LINEARREG_ANGLE, \"stream_LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_ANGLE(real[, timeperiod=?])\\n\\nLinear Regression Angle (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_LINEARREG_ANGLE = {\"stream_LINEARREG_ANGLE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_LINEARREG_ANGLE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_ANGLE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3436, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3436, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LINEARREG_ANGLE\", 0) < (0)) __PYX_ERR(5, 3436, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_ANGLE\", 0, 1, 2, i); __PYX_ERR(5, 3436, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3436, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3438, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_ANGLE\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3436, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_ANGLE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3438, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_ANGLE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3457, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LINEARREG_ANGLE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3462, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3463, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_ANGLE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT, \"stream_LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_INTERCEPT(real[, timeperiod=?])\\n\\nLinear Regression Intercept (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT = {\"stream_LINEARREG_INTERCEPT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_INTERCEPT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3465, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3465, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LINEARREG_INTERCEPT\", 0) < (0)) __PYX_ERR(5, 3465, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_INTERCEPT\", 0, 1, 2, i); __PYX_ERR(5, 3465, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3465, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3467, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_INTERCEPT\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3465, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_INTERCEPT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3467, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_INTERCEPT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3486, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LINEARREG_INTERCEPT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3491, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3492, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_INTERCEPT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_LINEARREG_SLOPE, \"stream_LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\\n\\nLINEARREG_SLOPE(real[, timeperiod=?])\\n\\nLinear Regression Slope (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_LINEARREG_SLOPE = {\"stream_LINEARREG_SLOPE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_LINEARREG_SLOPE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_SLOPE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3494, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LINEARREG_SLOPE\", 0) < (0)) __PYX_ERR(5, 3494, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_SLOPE\", 0, 1, 2, i); __PYX_ERR(5, 3494, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3496, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LINEARREG_SLOPE\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3494, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_SLOPE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3496, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LINEARREG_SLOPE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3515, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LINEARREG_SLOPE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3520, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3521, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LINEARREG_SLOPE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_571stream_LN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_LN, \"stream_LN(ndarray real)\\n\\nLN(real)\\n\\nVector Log Natural (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_LN = {\"stream_LN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_LN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_571stream_LN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3523, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3523, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LN\", 0) < (0)) __PYX_ERR(5, 3523, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LN\", 1, 1, 1, i); __PYX_ERR(5, 3523, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3523, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3523, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3525, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_LN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3542, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3547, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3548, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_573stream_LOG10(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_LOG10, \"stream_LOG10(ndarray real)\\n\\nLOG10(real)\\n\\nVector Log10 (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_LOG10 = {\"stream_LOG10\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_LOG10};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_573stream_LOG10(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_LOG10 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3550, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3550, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_LOG10\", 0) < (0)) __PYX_ERR(5, 3550, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_LOG10\", 1, 1, 1, i); __PYX_ERR(5, 3550, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3550, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_LOG10\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3550, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LOG10\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3552, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_LOG10(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_LOG10\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3569, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_LOG10((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3574, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3575, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_LOG10\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_MA, \"stream_MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\\n\\nMA(real[, timeperiod=?, matype=?])\\n\\nMoving average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_MA = {\"stream_MA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_MA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3577, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MA\", 0) < (0)) __PYX_ERR(5, 3577, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MA\", 0, 1, 3, i); __PYX_ERR(5, 3577, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3577, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3579, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3579, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MA\", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 3577, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3579, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3604, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3605, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MACD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_MACD, \"stream_MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\\n\\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\\n\\nMoving Average Convergence/Divergence (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    signalperiod: 9\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_MACD = {\"stream_MACD\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_MACD};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MACD(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_signalperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MACD (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3607, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MACD\", 0) < (0)) __PYX_ERR(5, 3607, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MACD\", 0, 1, 4, i); __PYX_ERR(5, 3607, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3607, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MACD\", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 3607, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3609, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outmacd;\n  double __pyx_v_outmacdsignal;\n  double __pyx_v_outmacdhist;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MACD\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3634, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MACD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3641, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACD\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_MACDEXT, \"stream_MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\\n\\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\\n\\nMACD with controllable MA type (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    fastmatype: 0\\n    slowperiod: 26\\n    slowmatype: 0\\n    signalperiod: 9\\n    signalmatype: 0\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_MACDEXT = {\"stream_MACDEXT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_MACDEXT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_fastmatype;\n  int __pyx_v_slowperiod;\n  int __pyx_v_slowmatype;\n  int __pyx_v_signalperiod;\n  int __pyx_v_signalmatype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[7] = {0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MACDEXT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3644, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MACDEXT\", 0) < (0)) __PYX_ERR(5, 3644, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MACDEXT\", 0, 1, 7, i); __PYX_ERR(5, 3644, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3644, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_fastmatype = ((int)((int)0));\n    }\n    if (values[3]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_slowmatype = ((int)((int)0));\n    }\n    if (values[5]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n    if (values[6]) {\n      __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error)\n    } else {\n      __pyx_v_signalmatype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MACDEXT\", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 3644, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACDEXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outmacd;\n  double __pyx_v_outmacdsignal;\n  double __pyx_v_outmacdhist;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MACDEXT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3674, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MACDEXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3681, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3682, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3682, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3682, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3682, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACDEXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_MACDFIX, \"stream_MACDFIX(ndarray real, int signalperiod=-0x80000000)\\n\\nMACDFIX(real[, signalperiod=?])\\n\\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    signalperiod: 9\\nOutputs:\\n    macd\\n    macdsignal\\n    macdhist\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_MACDFIX = {\"stream_MACDFIX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_MACDFIX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_signalperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MACDFIX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3684, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3684, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3684, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MACDFIX\", 0) < (0)) __PYX_ERR(5, 3684, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MACDFIX\", 0, 1, 2, i); __PYX_ERR(5, 3684, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3684, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3684, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3686, __pyx_L3_error)\n    } else {\n      __pyx_v_signalperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MACDFIX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3684, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACDFIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3686, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outmacd;\n  double __pyx_v_outmacdsignal;\n  double __pyx_v_outmacdhist;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MACDFIX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3709, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MACDFIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3716, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3717, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MACDFIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_MAMA, \"stream_MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\\n\\nMAMA(real[, fastlimit=?, slowlimit=?])\\n\\nMESA Adaptive Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastlimit: 0.5\\n    slowlimit: 0.05\\nOutputs:\\n    mama\\n    fama\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_MAMA = {\"stream_MAMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_MAMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MAMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  double __pyx_v_fastlimit;\n  double __pyx_v_slowlimit;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MAMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3719, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MAMA\", 0) < (0)) __PYX_ERR(5, 3719, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MAMA\", 0, 1, 3, i); __PYX_ERR(5, 3719, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3719, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3721, __pyx_L3_error)\n    } else {\n      __pyx_v_fastlimit = ((double)((double)-4e37));\n    }\n    if (values[2]) {\n      __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3721, __pyx_L3_error)\n    } else {\n      __pyx_v_slowlimit = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MAMA\", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 3719, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3721, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outmama;\n  double __pyx_v_outfama;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MAMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3743, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmama), (&__pyx_v_outfama));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3749, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3750, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3750, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3750, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3750, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3750, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MAVP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_MAVP, \"stream_MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\\n\\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\\n\\nMoving average with variable period (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\n    periods: (any ndarray)\\nParameters:\\n    minperiod: 2\\n    maxperiod: 30\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_MAVP = {\"stream_MAVP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_MAVP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MAVP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  PyArrayObject *__pyx_v_periods = 0;\n  int __pyx_v_minperiod;\n  int __pyx_v_maxperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MAVP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3752, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MAVP\", 0) < (0)) __PYX_ERR(5, 3752, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MAVP\", 0, 2, 5, i); __PYX_ERR(5, 3752, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3752, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    __pyx_v_periods = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error)\n    } else {\n      __pyx_v_minperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error)\n    } else {\n      __pyx_v_maxperiod = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MAVP\", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 3752, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAVP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3754, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"periods\", 0))) __PYX_ERR(5, 3754, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  double *__pyx_v_periods_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MAVP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n  __Pyx_INCREF((PyObject *)__pyx_v_periods);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3777, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3779, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_periods_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3781, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MAVP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_periods_data, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3784, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3785, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAVP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XDECREF((PyObject *)__pyx_v_periods);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_MAX, \"stream_MAX(ndarray real, int timeperiod=-0x80000000)\\n\\nMAX(real[, timeperiod=?])\\n\\nHighest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_MAX = {\"stream_MAX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_MAX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MAX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3787, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MAX\", 0) < (0)) __PYX_ERR(5, 3787, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MAX\", 0, 1, 2, i); __PYX_ERR(5, 3787, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3787, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3787, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3789, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MAX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3787, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3789, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MAX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3808, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3813, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3814, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_MAXINDEX, \"stream_MAXINDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMAXINDEX(real[, timeperiod=?])\\n\\nIndex of highest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_MAXINDEX = {\"stream_MAXINDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_MAXINDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MAXINDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3816, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MAXINDEX\", 0) < (0)) __PYX_ERR(5, 3816, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MAXINDEX\", 0, 1, 2, i); __PYX_ERR(5, 3816, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3818, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MAXINDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3816, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3818, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MAXINDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3837, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_MAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3842, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3843, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_MEDPRICE, \"stream_MEDPRICE(ndarray high, ndarray low)\\n\\nMEDPRICE(high, low)\\n\\nMedian Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_MEDPRICE = {\"stream_MEDPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_MEDPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MEDPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3845, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MEDPRICE\", 0) < (0)) __PYX_ERR(5, 3845, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MEDPRICE\", 1, 2, 2, i); __PYX_ERR(5, 3845, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MEDPRICE\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3845, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MEDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 3847, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 3847, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MEDPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3865, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3867, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3869, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MEDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3872, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3873, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MEDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MFI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_MFI, \"stream_MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\\n\\nMFI(high, low, close, volume[, timeperiod=?])\\n\\nMoney Flow Index (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close', 'volume']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_MFI = {\"stream_MFI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_MFI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MFI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MFI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3875, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MFI\", 0) < (0)) __PYX_ERR(5, 3875, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MFI\", 0, 4, 5, i); __PYX_ERR(5, 3875, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3875, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    __pyx_v_volume = ((PyArrayObject *)values[3]);\n    if (values[4]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3877, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MFI\", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 3875, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MFI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 3877, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 3877, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 3877, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(5, 3877, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  double *__pyx_v_volume_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MFI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3899, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3901, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3903, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3907, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3910, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3911, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MFI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_MIDPOINT, \"stream_MIDPOINT(ndarray real, int timeperiod=-0x80000000)\\n\\nMIDPOINT(real[, timeperiod=?])\\n\\nMidPoint over period (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_MIDPOINT = {\"stream_MIDPOINT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_MIDPOINT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MIDPOINT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3913, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MIDPOINT\", 0) < (0)) __PYX_ERR(5, 3913, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MIDPOINT\", 0, 1, 2, i); __PYX_ERR(5, 3913, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3913, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3913, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3915, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MIDPOINT\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3913, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIDPOINT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3915, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MIDPOINT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3934, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MIDPOINT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3939, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3940, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIDPOINT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_MIDPRICE, \"stream_MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nMIDPRICE(high, low[, timeperiod=?])\\n\\nMidpoint Price over period (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_MIDPRICE = {\"stream_MIDPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_MIDPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MIDPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3942, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MIDPRICE\", 0) < (0)) __PYX_ERR(5, 3942, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MIDPRICE\", 0, 2, 3, i); __PYX_ERR(5, 3942, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3942, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3944, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MIDPRICE\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3942, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 3944, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 3944, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MIDPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3964, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3966, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3968, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MIDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3971, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3972, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIDPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_MIN, \"stream_MIN(ndarray real, int timeperiod=-0x80000000)\\n\\nMIN(real[, timeperiod=?])\\n\\nLowest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_MIN = {\"stream_MIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_MIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 3974, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3974, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3974, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MIN\", 0) < (0)) __PYX_ERR(5, 3974, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MIN\", 0, 1, 2, i); __PYX_ERR(5, 3974, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3974, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3974, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3976, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MIN\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3974, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 3976, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3995, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4000, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4001, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MININDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_MININDEX, \"stream_MININDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMININDEX(real[, timeperiod=?])\\n\\nIndex of lowest value over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    integer (values are -100, 0 or 100)\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_MININDEX = {\"stream_MININDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_MININDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MININDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MININDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4003, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MININDEX\", 0) < (0)) __PYX_ERR(5, 4003, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MININDEX\", 0, 1, 2, i); __PYX_ERR(5, 4003, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4003, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4003, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4005, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MININDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4003, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MININDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4005, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outinteger;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MININDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4024, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outinteger = 0;\n\n  __pyx_v_retCode = TA_MININDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4029, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4030, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MININDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_603stream_MINMAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_MINMAX, \"stream_MINMAX(ndarray real, int timeperiod=-0x80000000)\\n\\nMINMAX(real[, timeperiod=?])\\n\\nLowest and highest values over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    min\\n    max\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_MINMAX = {\"stream_MINMAX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_MINMAX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_603stream_MINMAX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MINMAX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4032, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4032, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4032, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MINMAX\", 0) < (0)) __PYX_ERR(5, 4032, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MINMAX\", 0, 1, 2, i); __PYX_ERR(5, 4032, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4032, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4032, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4034, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MINMAX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4032, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINMAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4034, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outmin;\n  double __pyx_v_outmax;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MINMAX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4055, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MINMAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmin), (&__pyx_v_outmax));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4061, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4062, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4062, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4062, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4062, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4062, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINMAX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_MINMAXINDEX, \"stream_MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\\n\\nMINMAXINDEX(real[, timeperiod=?])\\n\\nIndexes of lowest and highest values over a specified period (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    minidx\\n    maxidx\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_MINMAXINDEX = {\"stream_MINMAXINDEX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_MINMAXINDEX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MINMAXINDEX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4064, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4064, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4064, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MINMAXINDEX\", 0) < (0)) __PYX_ERR(5, 4064, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MINMAXINDEX\", 0, 1, 2, i); __PYX_ERR(5, 4064, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4064, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4064, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4066, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MINMAXINDEX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4064, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINMAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4066, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  int __pyx_v_outminidx;\n  int __pyx_v_outmaxidx;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MINMAXINDEX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4087, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outminidx = 0;\n\n  __pyx_v_outmaxidx = 0;\n\n  __pyx_v_retCode = TA_MINMAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4093, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4094, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4094, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4094, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4094, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4094, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINMAXINDEX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_MINUS_DI, \"stream_MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nMINUS_DI(high, low, close[, timeperiod=?])\\n\\nMinus Directional Indicator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_MINUS_DI = {\"stream_MINUS_DI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_MINUS_DI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MINUS_DI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4096, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MINUS_DI\", 0) < (0)) __PYX_ERR(5, 4096, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MINUS_DI\", 0, 3, 4, i); __PYX_ERR(5, 4096, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4096, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4098, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MINUS_DI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4096, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4098, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4098, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 4098, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MINUS_DI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4121, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4123, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4125, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MINUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4128, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4129, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_MINUS_DM, \"stream_MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nMINUS_DM(high, low[, timeperiod=?])\\n\\nMinus Directional Movement (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_MINUS_DM = {\"stream_MINUS_DM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_MINUS_DM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MINUS_DM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4131, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MINUS_DM\", 0) < (0)) __PYX_ERR(5, 4131, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MINUS_DM\", 0, 2, 3, i); __PYX_ERR(5, 4131, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4131, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4133, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MINUS_DM\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4131, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4133, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4133, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MINUS_DM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4153, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4155, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4157, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MINUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4160, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4161, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MINUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_611stream_MOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_MOM, \"stream_MOM(ndarray real, int timeperiod=-0x80000000)\\n\\nMOM(real[, timeperiod=?])\\n\\nMomentum (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_MOM = {\"stream_MOM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_MOM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_611stream_MOM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MOM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4163, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4163, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4163, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MOM\", 0) < (0)) __PYX_ERR(5, 4163, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MOM\", 0, 1, 2, i); __PYX_ERR(5, 4163, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4163, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4163, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4165, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MOM\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4163, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4165, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MOM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4190, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MOM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_613stream_MULT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_MULT, \"stream_MULT(ndarray real0, ndarray real1)\\n\\nMULT(real0, real1)\\n\\nVector Arithmetic Mult (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_MULT = {\"stream_MULT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_MULT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_613stream_MULT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_MULT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4192, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4192, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4192, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_MULT\", 0) < (0)) __PYX_ERR(5, 4192, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_MULT\", 1, 2, 2, i); __PYX_ERR(5, 4192, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4192, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4192, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_MULT\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4192, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MULT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 4194, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 4194, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_MULT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4213, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4215, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4217, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_MULT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4220, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4221, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_MULT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_615stream_NATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_NATR, \"stream_NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nNATR(high, low, close[, timeperiod=?])\\n\\nNormalized Average True Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_NATR = {\"stream_NATR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_NATR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_615stream_NATR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_NATR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4223, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_NATR\", 0) < (0)) __PYX_ERR(5, 4223, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_NATR\", 0, 3, 4, i); __PYX_ERR(5, 4223, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4223, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4225, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_NATR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4223, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_NATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4225, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4225, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 4225, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_NATR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4246, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4248, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4250, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4252, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_NATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4256, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_NATR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_617stream_OBV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_OBV, \"stream_OBV(ndarray real, ndarray volume)\\n\\nOBV(real, volume)\\n\\nOn Balance Volume (Volume Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\n    prices: ['volume']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_OBV = {\"stream_OBV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_OBV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_617stream_OBV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  PyArrayObject *__pyx_v_volume = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_OBV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4258, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4258, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4258, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_OBV\", 0) < (0)) __PYX_ERR(5, 4258, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_OBV\", 1, 2, 2, i); __PYX_ERR(5, 4258, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4258, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4258, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    __pyx_v_volume = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_OBV\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4258, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_OBV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4260, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"volume\", 0))) __PYX_ERR(5, 4260, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  double *__pyx_v_volume_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_OBV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n  __Pyx_INCREF((PyObject *)__pyx_v_volume);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4283, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_OBV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4286, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4287, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_OBV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XDECREF((PyObject *)__pyx_v_volume);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_PLUS_DI, \"stream_PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nPLUS_DI(high, low, close[, timeperiod=?])\\n\\nPlus Directional Indicator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_PLUS_DI = {\"stream_PLUS_DI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_PLUS_DI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_PLUS_DI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4289, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_PLUS_DI\", 0) < (0)) __PYX_ERR(5, 4289, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_PLUS_DI\", 0, 3, 4, i); __PYX_ERR(5, 4289, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4289, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4291, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_PLUS_DI\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4289, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PLUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4291, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4291, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 4291, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_PLUS_DI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4312, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4314, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4316, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4318, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_PLUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4321, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4322, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PLUS_DI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_PLUS_DM, \"stream_PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\\n\\nPLUS_DM(high, low[, timeperiod=?])\\n\\nPlus Directional Movement (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_PLUS_DM = {\"stream_PLUS_DM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_PLUS_DM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_PLUS_DM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4324, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_PLUS_DM\", 0) < (0)) __PYX_ERR(5, 4324, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_PLUS_DM\", 0, 2, 3, i); __PYX_ERR(5, 4324, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4324, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4326, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_PLUS_DM\", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4324, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PLUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4326, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4326, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_PLUS_DM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4346, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4348, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4350, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_PLUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4353, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4354, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PLUS_DM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_623stream_PPO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_PPO, \"stream_PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\\n\\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\\n\\nPercentage Price Oscillator (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    fastperiod: 12\\n    slowperiod: 26\\n    matype: 0 (Simple Moving Average)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_PPO = {\"stream_PPO\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_PPO};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_623stream_PPO(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_fastperiod;\n  int __pyx_v_slowperiod;\n  int __pyx_v_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_PPO (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4356, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_PPO\", 0) < (0)) __PYX_ERR(5, 4356, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_PPO\", 0, 1, 4, i); __PYX_ERR(5, 4356, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4356, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error)\n    } else {\n      __pyx_v_fastperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error)\n    } else {\n      __pyx_v_slowperiod = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error)\n    } else {\n      __pyx_v_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_PPO\", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4356, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PPO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4358, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_PPO\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4379, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_PPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4384, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4385, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_PPO\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_625stream_ROC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_ROC, \"stream_ROC(ndarray real, int timeperiod=-0x80000000)\\n\\nROC(real[, timeperiod=?])\\n\\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_ROC = {\"stream_ROC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_ROC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_625stream_ROC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ROC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4387, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4387, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4387, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ROC\", 0) < (0)) __PYX_ERR(5, 4387, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ROC\", 0, 1, 2, i); __PYX_ERR(5, 4387, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4387, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4387, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4389, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ROC\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4387, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4389, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ROC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4408, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ROC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4413, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4414, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_627stream_ROCP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_ROCP, \"stream_ROCP(ndarray real, int timeperiod=-0x80000000)\\n\\nROCP(real[, timeperiod=?])\\n\\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_ROCP = {\"stream_ROCP\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_ROCP};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_627stream_ROCP(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ROCP (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4416, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4416, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4416, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ROCP\", 0) < (0)) __PYX_ERR(5, 4416, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ROCP\", 0, 1, 2, i); __PYX_ERR(5, 4416, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4416, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4416, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4418, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ROCP\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4416, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4418, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ROCP\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4437, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ROCP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4442, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4443, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCP\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_629stream_ROCR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_ROCR, \"stream_ROCR(ndarray real, int timeperiod=-0x80000000)\\n\\nROCR(real[, timeperiod=?])\\n\\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_ROCR = {\"stream_ROCR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_ROCR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_629stream_ROCR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ROCR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4445, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4445, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4445, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ROCR\", 0) < (0)) __PYX_ERR(5, 4445, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ROCR\", 0, 1, 2, i); __PYX_ERR(5, 4445, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4445, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4445, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4447, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ROCR\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4445, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4447, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ROCR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4466, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ROCR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4471, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4472, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_631stream_ROCR100(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_ROCR100, \"stream_ROCR100(ndarray real, int timeperiod=-0x80000000)\\n\\nROCR100(real[, timeperiod=?])\\n\\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 10\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_ROCR100 = {\"stream_ROCR100\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_ROCR100};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_631stream_ROCR100(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ROCR100 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4474, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4474, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4474, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ROCR100\", 0) < (0)) __PYX_ERR(5, 4474, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ROCR100\", 0, 1, 2, i); __PYX_ERR(5, 4474, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4474, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4474, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4476, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ROCR100\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4474, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCR100\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4476, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ROCR100\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4495, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ROCR100((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4500, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4501, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ROCR100\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_633stream_RSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_RSI, \"stream_RSI(ndarray real, int timeperiod=-0x80000000)\\n\\nRSI(real[, timeperiod=?])\\n\\nRelative Strength Index (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_RSI = {\"stream_RSI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_RSI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_633stream_RSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_RSI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4503, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_RSI\", 0) < (0)) __PYX_ERR(5, 4503, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_RSI\", 0, 1, 2, i); __PYX_ERR(5, 4503, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4505, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_RSI\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4503, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_RSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4505, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_RSI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4524, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_RSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4529, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4530, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_RSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_635stream_SAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_SAR, \"stream_SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\\n\\nSAR(high, low[, acceleration=?, maximum=?])\\n\\nParabolic SAR (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    acceleration: 0.02\\n    maximum: 0.2\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_SAR = {\"stream_SAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_SAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_635stream_SAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  double __pyx_v_acceleration;\n  double __pyx_v_maximum;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4532, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SAR\", 0) < (0)) __PYX_ERR(5, 4532, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SAR\", 0, 2, 4, i); __PYX_ERR(5, 4532, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error)\n    } else {\n      __pyx_v_acceleration = ((double)((double)0.02));\n    }\n    if (values[3]) {\n      __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error)\n    } else {\n      __pyx_v_maximum = ((double)((double)0.2));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SAR\", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4532, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4534, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4534, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4555, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4557, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4559, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4562, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4563, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_637stream_SAREXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_SAREXT, \"stream_SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\\n\\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\\n\\nParabolic SAR - Extended (Overlap Studies)\\n\\nInputs:\\n    prices: ['high', 'low']\\nParameters:\\n    startvalue: 0.0\\n    offsetonreverse: 0.0\\n    accelerationinitlong: 0.02\\n    accelerationlong: 0.02\\n    accelerationmaxlong: 0.2\\n    accelerationinitshort: 0.02\\n    accelerationshort: 0.02\\n    accelerationmaxshort: 0.2\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_SAREXT = {\"stream_SAREXT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_SAREXT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_637stream_SAREXT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  double __pyx_v_startvalue;\n  double __pyx_v_offsetonreverse;\n  double __pyx_v_accelerationinitlong;\n  double __pyx_v_accelerationlong;\n  double __pyx_v_accelerationmaxlong;\n  double __pyx_v_accelerationinitshort;\n  double __pyx_v_accelerationshort;\n  double __pyx_v_accelerationmaxshort;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SAREXT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4565, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case 10:\n        values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  9:\n        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SAREXT\", 0) < (0)) __PYX_ERR(5, 4565, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SAREXT\", 0, 2, 10, i); __PYX_ERR(5, 4565, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case 10:\n        values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  9:\n        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4565, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    if (values[2]) {\n      __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_startvalue = ((double)((double)-4e37));\n    }\n    if (values[3]) {\n      __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_offsetonreverse = ((double)((double)-4e37));\n    }\n    if (values[4]) {\n      __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationinitlong = ((double)((double)-4e37));\n    }\n    if (values[5]) {\n      __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationlong = ((double)((double)-4e37));\n    }\n    if (values[6]) {\n      __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationmaxlong = ((double)((double)-4e37));\n    }\n    if (values[7]) {\n      __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationinitshort = ((double)((double)-4e37));\n    }\n    if (values[8]) {\n      __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationshort = ((double)((double)-4e37));\n    }\n    if (values[9]) {\n      __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error)\n    } else {\n      __pyx_v_accelerationmaxshort = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SAREXT\", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 4565, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SAREXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4567, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SAREXT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4594, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4596, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4598, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SAREXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4601, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4602, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SAREXT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_639stream_SIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_SIN, \"stream_SIN(ndarray real)\\n\\nSIN(real)\\n\\nVector Trigonometric Sin (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_SIN = {\"stream_SIN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_SIN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_639stream_SIN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SIN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4604, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4604, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SIN\", 0) < (0)) __PYX_ERR(5, 4604, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SIN\", 1, 1, 1, i); __PYX_ERR(5, 4604, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4604, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SIN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4604, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4606, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_SIN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SIN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4623, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4628, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4629, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SIN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_641stream_SINH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_SINH, \"stream_SINH(ndarray real)\\n\\nSINH(real)\\n\\nVector Trigonometric Sinh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_SINH = {\"stream_SINH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_SINH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_641stream_SINH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SINH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4631, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4631, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SINH\", 0) < (0)) __PYX_ERR(5, 4631, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SINH\", 1, 1, 1, i); __PYX_ERR(5, 4631, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4631, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SINH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4631, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SINH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4633, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_SINH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SINH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4650, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SINH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4655, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4656, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SINH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_SMA, \"stream_SMA(ndarray real, int timeperiod=-0x80000000)\\n\\nSMA(real[, timeperiod=?])\\n\\nSimple Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_SMA = {\"stream_SMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_SMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4658, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SMA\", 0) < (0)) __PYX_ERR(5, 4658, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SMA\", 0, 1, 2, i); __PYX_ERR(5, 4658, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4660, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4658, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4660, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4684, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4685, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SQRT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_SQRT, \"stream_SQRT(ndarray real)\\n\\nSQRT(real)\\n\\nVector Square Root (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_SQRT = {\"stream_SQRT\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_SQRT};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SQRT(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SQRT (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4687, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4687, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SQRT\", 0) < (0)) __PYX_ERR(5, 4687, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SQRT\", 1, 1, 1, i); __PYX_ERR(5, 4687, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4687, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SQRT\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4687, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SQRT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4689, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_SQRT(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SQRT\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4706, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SQRT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4712, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SQRT\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_647stream_STDDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_STDDEV, \"stream_STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\\n\\nSTDDEV(real[, timeperiod=?, nbdev=?])\\n\\nStandard Deviation (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdev: 1.0\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_STDDEV = {\"stream_STDDEV\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_STDDEV};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_647stream_STDDEV(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdev;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_STDDEV (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4714, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_STDDEV\", 0) < (0)) __PYX_ERR(5, 4714, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_STDDEV\", 0, 1, 3, i); __PYX_ERR(5, 4714, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4714, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4716, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4716, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdev = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_STDDEV\", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4714, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STDDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4716, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_STDDEV\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4736, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_STDDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4741, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4742, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STDDEV\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_649stream_STOCH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_STOCH, \"stream_STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\\n\\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\\n\\nStochastic (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    fastk_period: 5\\n    slowk_period: 3\\n    slowk_matype: 0\\n    slowd_period: 3\\n    slowd_matype: 0\\nOutputs:\\n    slowk\\n    slowd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_STOCH = {\"stream_STOCH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_STOCH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_649stream_STOCH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_fastk_period;\n  int __pyx_v_slowk_period;\n  int __pyx_v_slowk_matype;\n  int __pyx_v_slowd_period;\n  int __pyx_v_slowd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[8] = {0,0,0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_STOCH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4744, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_STOCH\", 0) < (0)) __PYX_ERR(5, 4744, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_STOCH\", 0, 3, 8, i); __PYX_ERR(5, 4744, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  8:\n        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  7:\n        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4744, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error)\n    } else {\n      __pyx_v_slowk_period = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error)\n    } else {\n      __pyx_v_slowk_matype = ((int)((int)0));\n    }\n    if (values[6]) {\n      __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error)\n    } else {\n      __pyx_v_slowd_period = ((int)((int)-2147483648));\n    }\n    if (values[7]) {\n      __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error)\n    } else {\n      __pyx_v_slowd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_STOCH\", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 4744, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4746, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4746, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outslowk;\n  double __pyx_v_outslowd;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_STOCH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4773, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4775, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4777, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4779, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_STOCH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outslowk), (&__pyx_v_outslowd));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4783, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4784, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4784, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4784, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4784, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4784, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_651stream_STOCHF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_STOCHF, \"stream_STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\\n\\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\\n\\nStochastic Fast (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    fastk_period: 5\\n    fastd_period: 3\\n    fastd_matype: 0\\nOutputs:\\n    fastk\\n    fastd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_STOCHF = {\"stream_STOCHF\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_STOCHF};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_651stream_STOCHF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_fastk_period;\n  int __pyx_v_fastd_period;\n  int __pyx_v_fastd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_STOCHF (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4786, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_STOCHF\", 0) < (0)) __PYX_ERR(5, 4786, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_STOCHF\", 0, 3, 6, i); __PYX_ERR(5, 4786, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4786, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_period = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_STOCHF\", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 4786, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCHF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 4788, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 4788, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 4788, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outfastk;\n  double __pyx_v_outfastd;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_STOCHF\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4813, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4815, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4817, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4819, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_STOCHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4823, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4824, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_3);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4824, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_3 = 0;\n  __pyx_r = __pyx_t_4;\n  __pyx_t_4 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCHF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_STOCHRSI, \"stream_STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\\n\\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\\n\\nStochastic Relative Strength Index (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\n    fastk_period: 5\\n    fastd_period: 3\\n    fastd_matype: 0\\nOutputs:\\n    fastk\\n    fastd\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_STOCHRSI = {\"stream_STOCHRSI\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_STOCHRSI};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  int __pyx_v_fastk_period;\n  int __pyx_v_fastd_period;\n  int __pyx_v_fastd_matype;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[5] = {0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_STOCHRSI (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4826, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_STOCHRSI\", 0) < (0)) __PYX_ERR(5, 4826, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_STOCHRSI\", 0, 1, 5, i); __PYX_ERR(5, 4826, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4826, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error)\n    } else {\n      __pyx_v_fastk_period = ((int)((int)-2147483648));\n    }\n    if (values[3]) {\n      __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_period = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error)\n    } else {\n      __pyx_v_fastd_matype = ((int)((int)0));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_STOCHRSI\", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 4826, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCHRSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4828, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outfastk;\n  double __pyx_v_outfastd;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_STOCHRSI\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4852, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_STOCHRSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4858, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4859, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4859, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4859, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_GIVEREF(__pyx_t_1);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4859, __pyx_L1_error);\n  __Pyx_GIVEREF(__pyx_t_2);\n  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4859, __pyx_L1_error);\n  __pyx_t_1 = 0;\n  __pyx_t_2 = 0;\n  __pyx_r = __pyx_t_3;\n  __pyx_t_3 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_STOCHRSI\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_655stream_SUB(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_SUB, \"stream_SUB(ndarray real0, ndarray real1)\\n\\nSUB(real0, real1)\\n\\nVector Arithmetic Subtraction (Math Operators)\\n\\nInputs:\\n    real0: (any ndarray)\\n    real1: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_SUB = {\"stream_SUB\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_SUB};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_655stream_SUB(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real0 = 0;\n  PyArrayObject *__pyx_v_real1 = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SUB (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4861, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4861, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4861, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SUB\", 0) < (0)) __PYX_ERR(5, 4861, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SUB\", 1, 2, 2, i); __PYX_ERR(5, 4861, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 2)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4861, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4861, __pyx_L3_error)\n    }\n    __pyx_v_real0 = ((PyArrayObject *)values[0]);\n    __pyx_v_real1 = ((PyArrayObject *)values[1]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SUB\", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4861, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SUB\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real0\", 0))) __PYX_ERR(5, 4863, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real1\", 0))) __PYX_ERR(5, 4863, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real0_data;\n  double *__pyx_v_real1_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SUB\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real1);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4882, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4884, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4886, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SUB((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4889, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4890, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SUB\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real0);\n  __Pyx_XDECREF((PyObject *)__pyx_v_real1);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_657stream_SUM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_SUM, \"stream_SUM(ndarray real, int timeperiod=-0x80000000)\\n\\nSUM(real[, timeperiod=?])\\n\\nSummation (Math Operators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_SUM = {\"stream_SUM\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_SUM};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_657stream_SUM(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_SUM (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4892, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4892, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4892, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_SUM\", 0) < (0)) __PYX_ERR(5, 4892, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_SUM\", 0, 1, 2, i); __PYX_ERR(5, 4892, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4892, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4892, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4894, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_SUM\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4892, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SUM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4894, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_SUM\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_SUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4918, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4919, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_SUM\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_659stream_T3(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_T3, \"stream_T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\\n\\nT3(real[, timeperiod=?, vfactor=?])\\n\\nTriple Exponential Moving Average (T3) (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    vfactor: 0.7\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_T3 = {\"stream_T3\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_T3};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_659stream_T3(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_vfactor;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_T3 (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4921, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_T3\", 0) < (0)) __PYX_ERR(5, 4921, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_T3\", 0, 1, 3, i); __PYX_ERR(5, 4921, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4921, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4923, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4923, __pyx_L3_error)\n    } else {\n      __pyx_v_vfactor = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_T3\", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4921, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_T3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4923, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_T3\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4943, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_T3((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4948, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4949, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_T3\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_TAN, \"stream_TAN(ndarray real)\\n\\nTAN(real)\\n\\nVector Trigonometric Tan (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_TAN = {\"stream_TAN\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_TAN};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TAN(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TAN (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4951, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4951, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TAN\", 0) < (0)) __PYX_ERR(5, 4951, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TAN\", 1, 1, 1, i); __PYX_ERR(5, 4951, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4951, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TAN\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4951, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4953, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_TAN(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TAN\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4970, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4975, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4976, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TAN\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TANH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_TANH, \"stream_TANH(ndarray real)\\n\\nTANH(real)\\n\\nVector Trigonometric Tanh (Math Transform)\\n\\nInputs:\\n    real: (any ndarray)\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_TANH = {\"stream_TANH\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_TANH};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TANH(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[1] = {0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TANH (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 4978, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TANH\", 0) < (0)) __PYX_ERR(5, 4978, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TANH\", 1, 1, 1, i); __PYX_ERR(5, 4978, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 1)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error)\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TANH\", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4978, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TANH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 4980, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_TANH(__pyx_self, __pyx_v_real);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TANH\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4997, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TANH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5002, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5003, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TANH\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_665stream_TEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_TEMA, \"stream_TEMA(ndarray real, int timeperiod=-0x80000000)\\n\\nTEMA(real[, timeperiod=?])\\n\\nTriple Exponential Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_TEMA = {\"stream_TEMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_TEMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_665stream_TEMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TEMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5005, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5005, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5005, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TEMA\", 0) < (0)) __PYX_ERR(5, 5005, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TEMA\", 0, 1, 2, i); __PYX_ERR(5, 5005, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5005, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5005, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5007, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TEMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5005, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5007, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TEMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5026, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5031, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5032, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TEMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_667stream_TRANGE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_TRANGE, \"stream_TRANGE(ndarray high, ndarray low, ndarray close)\\n\\nTRANGE(high, low, close)\\n\\nTrue Range (Volatility Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_TRANGE = {\"stream_TRANGE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_TRANGE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_667stream_TRANGE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TRANGE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5034, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5034, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5034, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5034, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TRANGE\", 0) < (0)) __PYX_ERR(5, 5034, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TRANGE\", 1, 3, 3, i); __PYX_ERR(5, 5034, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5034, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5034, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5034, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TRANGE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5034, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRANGE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 5036, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 5036, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 5036, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TRANGE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5055, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5057, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5059, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5061, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TRANGE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5065, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRANGE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_669stream_TRIMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_TRIMA, \"stream_TRIMA(ndarray real, int timeperiod=-0x80000000)\\n\\nTRIMA(real[, timeperiod=?])\\n\\nTriangular Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_TRIMA = {\"stream_TRIMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_TRIMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_669stream_TRIMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TRIMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5067, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5067, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5067, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TRIMA\", 0) < (0)) __PYX_ERR(5, 5067, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TRIMA\", 0, 1, 2, i); __PYX_ERR(5, 5067, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5067, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5067, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5069, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TRIMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5067, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRIMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5069, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TRIMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5088, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TRIMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5093, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5094, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRIMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_671stream_TRIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_TRIX, \"stream_TRIX(ndarray real, int timeperiod=-0x80000000)\\n\\nTRIX(real[, timeperiod=?])\\n\\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_TRIX = {\"stream_TRIX\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_TRIX};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_671stream_TRIX(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TRIX (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5096, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TRIX\", 0) < (0)) __PYX_ERR(5, 5096, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TRIX\", 0, 1, 2, i); __PYX_ERR(5, 5096, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5096, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5096, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5098, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TRIX\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5096, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5098, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TRIX\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TRIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5122, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5123, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TRIX\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_673stream_TSF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_TSF, \"stream_TSF(ndarray real, int timeperiod=-0x80000000)\\n\\nTSF(real[, timeperiod=?])\\n\\nTime Series Forecast (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_TSF = {\"stream_TSF\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_TSF};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_673stream_TSF(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TSF (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5125, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5125, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5125, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TSF\", 0) < (0)) __PYX_ERR(5, 5125, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TSF\", 0, 1, 2, i); __PYX_ERR(5, 5125, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5125, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5125, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5127, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TSF\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5125, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TSF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5127, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TSF\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5146, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TSF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5152, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TSF\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_674stream_TYPPRICE, \"stream_TYPPRICE(ndarray high, ndarray low, ndarray close)\\n\\nTYPPRICE(high, low, close)\\n\\nTypical Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_675stream_TYPPRICE = {\"stream_TYPPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_674stream_TYPPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_TYPPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5154, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5154, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_TYPPRICE\", 0) < (0)) __PYX_ERR(5, 5154, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_TYPPRICE\", 1, 3, 3, i); __PYX_ERR(5, 5154, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5154, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5154, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5154, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_TYPPRICE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5154, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TYPPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 5156, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 5156, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 5156, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_TYPPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5175, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5177, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5179, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5181, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_TYPPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5185, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_TYPPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_676stream_ULTOSC, \"stream_ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\\n\\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\\n\\nUltimate Oscillator (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod1: 7\\n    timeperiod2: 14\\n    timeperiod3: 28\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_677stream_ULTOSC = {\"stream_ULTOSC\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_676stream_ULTOSC};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod1;\n  int __pyx_v_timeperiod2;\n  int __pyx_v_timeperiod3;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[6] = {0,0,0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_ULTOSC (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5187, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_ULTOSC\", 0) < (0)) __PYX_ERR(5, 5187, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_ULTOSC\", 0, 3, 6, i); __PYX_ERR(5, 5187, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  6:\n        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  5:\n        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5187, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod1 = ((int)((int)-2147483648));\n    }\n    if (values[4]) {\n      __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod2 = ((int)((int)-2147483648));\n    }\n    if (values[5]) {\n      __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod3 = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_ULTOSC\", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5187, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ULTOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 5189, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 5189, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 5189, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_ULTOSC\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5212, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5214, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5216, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5218, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_ULTOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5221, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5222, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_ULTOSC\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_679stream_VAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_678stream_VAR, \"stream_VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\\n\\nVAR(real[, timeperiod=?, nbdev=?])\\n\\nVariance (Statistic Functions)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 5\\n    nbdev: 1.0\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_679stream_VAR = {\"stream_VAR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_679stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_678stream_VAR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_679stream_VAR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  double __pyx_v_nbdev;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_VAR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5224, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_VAR\", 0) < (0)) __PYX_ERR(5, 5224, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_VAR\", 0, 1, 3, i); __PYX_ERR(5, 5224, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5224, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5226, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n    if (values[2]) {\n      __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5226, __pyx_L3_error)\n    } else {\n      __pyx_v_nbdev = ((double)((double)-4e37));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_VAR\", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5224, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_VAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5226, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_678stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_678stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_VAR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5246, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_VAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5251, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5252, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_VAR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_680stream_WCLPRICE, \"stream_WCLPRICE(ndarray high, ndarray low, ndarray close)\\n\\nWCLPRICE(high, low, close)\\n\\nWeighted Close Price (Price Transform)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_681stream_WCLPRICE = {\"stream_WCLPRICE\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_680stream_WCLPRICE};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[3] = {0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_WCLPRICE (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5254, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5254, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5254, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5254, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_WCLPRICE\", 0) < (0)) __PYX_ERR(5, 5254, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_WCLPRICE\", 1, 3, 3, i); __PYX_ERR(5, 5254, __pyx_L3_error) }\n      }\n    } else if (unlikely(__pyx_nargs != 3)) {\n      goto __pyx_L5_argtuple_error;\n    } else {\n      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5254, __pyx_L3_error)\n      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5254, __pyx_L3_error)\n      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5254, __pyx_L3_error)\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_WCLPRICE\", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5254, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WCLPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 5256, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 5256, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 5256, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_WCLPRICE\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5275, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5277, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5281, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_WCLPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5284, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5285, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WCLPRICE\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_683stream_WILLR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_682stream_WILLR, \"stream_WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\\n\\nWILLR(high, low, close[, timeperiod=?])\\n\\nWilliams' %R (Momentum Indicators)\\n\\nInputs:\\n    prices: ['high', 'low', 'close']\\nParameters:\\n    timeperiod: 14\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_683stream_WILLR = {\"stream_WILLR\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_683stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_682stream_WILLR};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_683stream_WILLR(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_high = 0;\n  PyArrayObject *__pyx_v_low = 0;\n  PyArrayObject *__pyx_v_close = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[4] = {0,0,0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_WILLR (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5287, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_WILLR\", 0) < (0)) __PYX_ERR(5, 5287, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_WILLR\", 0, 3, 4, i); __PYX_ERR(5, 5287, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  4:\n        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  3:\n        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5287, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_high = ((PyArrayObject *)values[0]);\n    __pyx_v_low = ((PyArrayObject *)values[1]);\n    __pyx_v_close = ((PyArrayObject *)values[2]);\n    if (values[3]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5289, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_WILLR\", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5287, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WILLR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"high\", 0))) __PYX_ERR(5, 5289, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"low\", 0))) __PYX_ERR(5, 5289, __pyx_L1_error)\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"close\", 0))) __PYX_ERR(5, 5289, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_682stream_WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_682stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_high_data;\n  double *__pyx_v_low_data;\n  double *__pyx_v_close_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  npy_intp __pyx_t_2;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_WILLR\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_high);\n  __Pyx_INCREF((PyObject *)__pyx_v_low);\n  __Pyx_INCREF((PyObject *)__pyx_v_close);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5310, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5312, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low));\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5314, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close));\n\n  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5316, __pyx_L1_error)\n  __pyx_v_length = __pyx_t_2;\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_WILLR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5319, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5320, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WILLR\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_high);\n  __Pyx_XDECREF((PyObject *)__pyx_v_low);\n  __Pyx_XDECREF((PyObject *)__pyx_v_close);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\n\n/* Python wrapper */\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_685stream_WMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n); /*proto*/\nPyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_684stream_WMA, \"stream_WMA(ndarray real, int timeperiod=-0x80000000)\\n\\nWMA(real[, timeperiod=?])\\n\\nWeighted Moving Average (Overlap Studies)\\n\\nInputs:\\n    real: (any ndarray)\\nParameters:\\n    timeperiod: 30\\nOutputs:\\n    real\");\nstatic PyMethodDef __pyx_mdef_5talib_7_ta_lib_685stream_WMA = {\"stream_WMA\", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_685stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_684stream_WMA};\nstatic PyObject *__pyx_pw_5talib_7_ta_lib_685stream_WMA(PyObject *__pyx_self, \n#if CYTHON_METH_FASTCALL\nPyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds\n#else\nPyObject *__pyx_args, PyObject *__pyx_kwds\n#endif\n) {\n  PyArrayObject *__pyx_v_real = 0;\n  int __pyx_v_timeperiod;\n  #if !CYTHON_METH_FASTCALL\n  CYTHON_UNUSED Py_ssize_t __pyx_nargs;\n  #endif\n  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;\n  PyObject* values[2] = {0,0};\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  PyObject *__pyx_r = 0;\n  __Pyx_RefNannyDeclarations\n  __Pyx_RefNannySetupContext(\"stream_WMA (wrapper)\", 0);\n  #if !CYTHON_METH_FASTCALL\n  #if CYTHON_ASSUME_SAFE_SIZE\n  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);\n  #else\n  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;\n  #endif\n  #endif\n  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);\n  {\n    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0};\n    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;\n    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 5322, __pyx_L3_error)\n    if (__pyx_kwds_len > 0) {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5322, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5322, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  0: break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n      const Py_ssize_t kwd_pos_args = __pyx_nargs;\n      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, \"stream_WMA\", 0) < (0)) __PYX_ERR(5, 5322, __pyx_L3_error)\n      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {\n        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid(\"stream_WMA\", 0, 1, 2, i); __PYX_ERR(5, 5322, __pyx_L3_error) }\n      }\n    } else {\n      switch (__pyx_nargs) {\n        case  2:\n        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5322, __pyx_L3_error)\n        CYTHON_FALLTHROUGH;\n        case  1:\n        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);\n        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5322, __pyx_L3_error)\n        break;\n        default: goto __pyx_L5_argtuple_error;\n      }\n    }\n    __pyx_v_real = ((PyArrayObject *)values[0]);\n    if (values[1]) {\n      __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5324, __pyx_L3_error)\n    } else {\n      __pyx_v_timeperiod = ((int)((int)-2147483648));\n    }\n  }\n  goto __pyx_L6_skip;\n  __pyx_L5_argtuple_error:;\n  __Pyx_RaiseArgtupleInvalid(\"stream_WMA\", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5322, __pyx_L3_error)\n  __pyx_L6_skip:;\n  goto __pyx_L4_argument_unpacking_done;\n  __pyx_L3_error:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __Pyx_RefNannyFinishContext();\n  return NULL;\n  __pyx_L4_argument_unpacking_done:;\n  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, \"real\", 0))) __PYX_ERR(5, 5324, __pyx_L1_error)\n  __pyx_r = __pyx_pf_5talib_7_ta_lib_684stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);\n\n  /* function exit code */\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __pyx_r = NULL;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  goto __pyx_L7_cleaned_up;\n  __pyx_L0:;\n  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {\n    Py_XDECREF(values[__pyx_temp]);\n  }\n  __pyx_L7_cleaned_up:;\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n\nstatic PyObject *__pyx_pf_5talib_7_ta_lib_684stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {\n  npy_intp __pyx_v_length;\n  TA_RetCode __pyx_v_retCode;\n  double *__pyx_v_real_data;\n  int __pyx_v_outbegidx;\n  int __pyx_v_outnbelement;\n  double __pyx_v_outreal;\n  PyObject *__pyx_r = NULL;\n  __Pyx_RefNannyDeclarations\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"stream_WMA\", 0);\n  __Pyx_INCREF((PyObject *)__pyx_v_real);\n\n  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));\n  __pyx_t_1 = 0;\n\n  __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real));\n\n  __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]);\n\n  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;\n\n  __pyx_v_retCode = TA_WMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));\n\n  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5348, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n\n  __Pyx_XDECREF(__pyx_r);\n  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5349, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_r = __pyx_t_1;\n  __pyx_t_1 = 0;\n  goto __pyx_L0;\n\n\n  /* function exit code */\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_AddTraceback(\"talib._ta_lib.stream_WMA\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n  __pyx_r = NULL;\n  __pyx_L0:;\n  __Pyx_XDECREF((PyObject *)__pyx_v_real);\n  __Pyx_XGIVEREF(__pyx_r);\n  __Pyx_RefNannyFinishContext();\n  return __pyx_r;\n}\n/* #### Code section: module_exttypes ### */\n\nstatic PyMethodDef __pyx_methods[] = {\n  {0, 0, 0, 0}\n};\n/* #### Code section: initfunc_declarations ### */\nstatic CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/\nstatic CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/\n/* #### Code section: init_module ### */\n\nstatic int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_global_init_code\", 0);\n  /*--- Global init code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\nstatic int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_variable_export_code\", 0);\n  /*--- Variable export code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\nstatic int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_function_export_code\", 0);\n  /*--- Function export code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\nstatic int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_type_init_code\", 0);\n  /*--- Type init code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\nstatic int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  PyObject *__pyx_t_1 = NULL;\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_type_import_code\", 0);\n  /*--- Type import code ---*/\n  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, \"type\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyTypeObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  0, 0,\n  #else\n  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyHeapTypeObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(6, 9, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __pyx_t_1 = PyImport_ImportModule(\"numpy\"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 271, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_1);\n  __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"dtype\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArray_Descr),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArray_Descr),\n  #else\n  sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArray_Descr),\n  #endif\n  __Pyx_ImportType_CheckSize_Ignore_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(3, 271, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"flatiter\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayIterObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayIterObject),\n  #else\n  sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayIterObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Ignore_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 316, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"broadcast\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayMultiIterObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayMultiIterObject),\n  #else\n  sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayMultiIterObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Ignore_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 320, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"ndarray\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayObject),\n  #else\n  sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyArrayObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Ignore_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 359, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"generic\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 864, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"number\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 866, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"integer\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 868, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"signedinteger\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 870, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"unsignedinteger\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 872, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"inexact\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 874, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"floating\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 876, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"complexfloating\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 878, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"flexible\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 880, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"character\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #else\n  sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 882, __pyx_L1_error)\n  __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_2_4(__pyx_t_1, \"numpy\", \"ufunc\",\n  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000\n  sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyUFuncObject),\n  #elif CYTHON_COMPILING_IN_LIMITED_API\n  sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyUFuncObject),\n  #else\n  sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyUFuncObject),\n  #endif\n  __Pyx_ImportType_CheckSize_Ignore_3_2_4); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 946, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;\n  __Pyx_RefNannyFinishContext();\n  return 0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_1);\n  __Pyx_RefNannyFinishContext();\n  return -1;\n}\n\nstatic int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_variable_import_code\", 0);\n  /*--- Variable import code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\nstatic int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_modinit_function_import_code\", 0);\n  /*--- Function import code ---*/\n  __Pyx_RefNannyFinishContext();\n  return 0;\n}\n\n#if CYTHON_PEP489_MULTI_PHASE_INIT\nstatic PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/\nstatic int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/\nstatic PyModuleDef_Slot __pyx_moduledef_slots[] = {\n  {Py_mod_create, (void*)__pyx_pymod_create},\n  {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib},\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n  {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},\n  #endif\n  #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE\n  {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n  #endif\n  {0, NULL}\n};\n#endif\n\n#ifdef __cplusplus\nnamespace {\n  struct PyModuleDef __pyx_moduledef =\n  #else\n  static struct PyModuleDef __pyx_moduledef =\n  #endif\n  {\n      PyModuleDef_HEAD_INIT,\n      \"_ta_lib\",\n      0, /* m_doc */\n    #if CYTHON_USE_MODULE_STATE\n      sizeof(__pyx_mstatetype), /* m_size */\n    #else\n      (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */\n    #endif\n      __pyx_methods /* m_methods */,\n    #if CYTHON_PEP489_MULTI_PHASE_INIT\n      __pyx_moduledef_slots, /* m_slots */\n    #else\n      NULL, /* m_reload */\n    #endif\n    #if CYTHON_USE_MODULE_STATE\n      __pyx_m_traverse, /* m_traverse */\n      __pyx_m_clear, /* m_clear */\n      NULL /* m_free */\n    #else\n      NULL, /* m_traverse */\n      NULL, /* m_clear */\n      NULL /* m_free */\n    #endif\n  };\n  #ifdef __cplusplus\n} /* anonymous namespace */\n#endif\n\n/* PyModInitFuncType */\n#ifndef CYTHON_NO_PYINIT_EXPORT\n  #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC\n#else\n  #ifdef __cplusplus\n  #define __Pyx_PyMODINIT_FUNC extern \"C\" PyObject *\n  #else\n  #define __Pyx_PyMODINIT_FUNC PyObject *\n  #endif\n#endif\n\n__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/\n__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)\n#if CYTHON_PEP489_MULTI_PHASE_INIT\n{\n  return PyModuleDef_Init(&__pyx_moduledef);\n}\n/* ModuleCreationPEP489 */\n#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\\\n      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))\nstatic PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {\n    {\n        PyObject *module = PyImport_ImportModule(\"_interpreters\"); // 3.13+ I think\n        if (!module) {\n            PyErr_Clear(); // just try the 3.8-3.12 version\n            module = PyImport_ImportModule(\"_xxsubinterpreters\");\n            if (!module) goto bad;\n        }\n        PyObject *current = PyObject_CallMethod(module, \"get_current\", NULL);\n        Py_DECREF(module);\n        if (!current) goto bad;\n        if (PyTuple_Check(current)) {\n            PyObject *new_current = PySequence_GetItem(current, 0);\n            Py_DECREF(current);\n            current = new_current;\n            if (!new_current) goto bad;\n        }\n        long long as_c_int = PyLong_AsLongLong(current);\n        Py_DECREF(current);\n        return as_c_int;\n    }\n  bad:\n    PySys_WriteStderr(\"__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\\n\");\n    return -1;\n}\n#endif\n#if !CYTHON_USE_MODULE_STATE\nstatic CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {\n    static PY_INT64_T main_interpreter_id = -1;\n#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000\n    PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());\n#elif CYTHON_COMPILING_IN_GRAAL\n    PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());\n#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\\\n      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))\n    PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();\n#elif CYTHON_COMPILING_IN_LIMITED_API\n    PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());\n#else\n    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);\n#endif\n    if (unlikely(current_id == -1)) {\n        return -1;\n    }\n    if (main_interpreter_id == -1) {\n        main_interpreter_id = current_id;\n        return 0;\n    } else if (unlikely(main_interpreter_id != current_id)) {\n        PyErr_SetString(\n            PyExc_ImportError,\n            \"Interpreter change detected - this module can only be loaded into one interpreter per process.\");\n        return -1;\n    }\n    return 0;\n}\n#endif\nstatic CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)\n{\n    PyObject *value = PyObject_GetAttrString(spec, from_name);\n    int result = 0;\n    if (likely(value)) {\n        if (allow_none || value != Py_None) {\n            result = PyDict_SetItemString(moddict, to_name, value);\n        }\n        Py_DECREF(value);\n    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {\n        PyErr_Clear();\n    } else {\n        result = -1;\n    }\n    return result;\n}\nstatic CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {\n    PyObject *module = NULL, *moddict, *modname;\n    CYTHON_UNUSED_VAR(def);\n    #if !CYTHON_USE_MODULE_STATE\n    if (__Pyx_check_single_interpreter())\n        return NULL;\n    #endif\n    if (__pyx_m)\n        return __Pyx_NewRef(__pyx_m);\n    modname = PyObject_GetAttrString(spec, \"name\");\n    if (unlikely(!modname)) goto bad;\n    module = PyModule_NewObject(modname);\n    Py_DECREF(modname);\n    if (unlikely(!module)) goto bad;\n    moddict = PyModule_GetDict(module);\n    if (unlikely(!moddict)) goto bad;\n    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, \"loader\", \"__loader__\", 1) < 0)) goto bad;\n    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, \"origin\", \"__file__\", 1) < 0)) goto bad;\n    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, \"parent\", \"__package__\", 1) < 0)) goto bad;\n    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, \"submodule_search_locations\", \"__path__\", 0) < 0)) goto bad;\n    return module;\nbad:\n    Py_XDECREF(module);\n    return NULL;\n}\n\n\nstatic CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module)\n#endif\n{\n  int stringtab_initialized = 0;\n  #if CYTHON_USE_MODULE_STATE\n  int pystate_addmodule_run = 0;\n  #endif\n  __pyx_mstatetype *__pyx_mstate = NULL;\n  PyObject *__pyx_t_1 = NULL;\n  PyObject *__pyx_t_2 = NULL;\n  PyObject *__pyx_t_3 = NULL;\n  PyObject *__pyx_t_4 = NULL;\n  PyObject *__pyx_t_5 = NULL;\n  PyObject *__pyx_t_6 = NULL;\n  size_t __pyx_t_7;\n  PyObject *__pyx_t_8 = NULL;\n  PyObject *__pyx_t_9 = NULL;\n  PyObject *__pyx_t_10 = NULL;\n  PyObject *__pyx_t_11 = NULL;\n  PyObject *__pyx_t_12 = NULL;\n  PyObject *__pyx_t_13 = NULL;\n  PyObject *__pyx_t_14 = NULL;\n  PyObject *__pyx_t_15 = NULL;\n  PyObject *__pyx_t_16 = NULL;\n  PyObject *(*__pyx_t_17)(PyObject *);\n  Py_ssize_t __pyx_t_18;\n  PyObject *__pyx_t_19 = NULL;\n  PyObject *__pyx_t_20 = NULL;\n  PyObject *__pyx_t_21 = NULL;\n  double __pyx_t_22;\n  int __pyx_t_23;\n  PyObject *__pyx_t_24 = NULL;\n  PyObject *__pyx_t_25 = NULL;\n  PyObject *__pyx_t_26 = NULL;\n  int __pyx_t_27;\n  PyObject *__pyx_t_28 = NULL;\n  PyObject *__pyx_t_29 = NULL;\n  int __pyx_t_30;\n  int __pyx_t_31;\n  int __pyx_t_32;\n  PyObject *(*__pyx_t_33)(PyObject *);\n  int __pyx_lineno = 0;\n  const char *__pyx_filename = NULL;\n  int __pyx_clineno = 0;\n  __Pyx_RefNannyDeclarations\n  #if CYTHON_PEP489_MULTI_PHASE_INIT\n  if (__pyx_m) {\n    if (__pyx_m == __pyx_pyinit_module) return 0;\n    PyErr_SetString(PyExc_RuntimeError, \"Module '_ta_lib' has already been imported. Re-initialisation is not supported.\");\n    return -1;\n  }\n  #else\n  if (__pyx_m) return __Pyx_NewRef(__pyx_m);\n  #endif\n  /*--- Module creation code ---*/\n  #if CYTHON_PEP489_MULTI_PHASE_INIT\n  __pyx_t_1 = __pyx_pyinit_module;\n  Py_INCREF(__pyx_t_1);\n  #else\n  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)\n  #endif\n  #if CYTHON_USE_MODULE_STATE\n  {\n    int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);\n    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to \"_ta_lib\" pseudovariable */\n    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)\n    pystate_addmodule_run = 1;\n  }\n  #else\n  __pyx_m = __pyx_t_1;\n  #endif\n  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n  PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);\n  #endif\n  __pyx_mstate = __pyx_mstate_global;\n  CYTHON_UNUSED_VAR(__pyx_t_1);\n  __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)\n  Py_INCREF(__pyx_mstate->__pyx_d);\n  __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef(\"cython_runtime\"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)\n  if (PyObject_SetAttrString(__pyx_m, \"__builtins__\", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)\n  /* ImportRefnannyAPI */\n  #if CYTHON_REFNANNY\n  __Pyx_RefNanny = __Pyx_RefNannyImportAPI(\"refnanny\");\n  if (!__Pyx_RefNanny) {\n    PyErr_Clear();\n    __Pyx_RefNanny = __Pyx_RefNannyImportAPI(\"Cython.Runtime.refnanny\");\n    if (!__Pyx_RefNanny)\n        Py_FatalError(\"failed to import 'refnanny' module\");\n  }\n  #endif\n  \n__Pyx_RefNannySetupContext(\"PyInit__ta_lib\", 0);\n  __Pyx_init_runtime_version();\n  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize(\"\", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize(\"\", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)\n  /*--- Library function declarations ---*/\n  /*--- Initialize various global constants etc. ---*/\n  if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  stringtab_initialized = 1;\n  if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  if (__pyx_module_is_main_talib___ta_lib) {\n    if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  }\n  {\n    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)\n    if (!PyDict_GetItemString(modules, \"talib._ta_lib\")) {\n      if (unlikely((PyDict_SetItemString(modules, \"talib._ta_lib\", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)\n    }\n  }\n  /*--- Builtin init code ---*/\n  if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  /*--- Constants init code ---*/\n  if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  /*--- Global type/function init code ---*/\n  (void)__Pyx_modinit_global_init_code(__pyx_mstate);\n  (void)__Pyx_modinit_variable_export_code(__pyx_mstate);\n  (void)__Pyx_modinit_function_export_code(__pyx_mstate);\n  (void)__Pyx_modinit_type_init_code(__pyx_mstate);\n  if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)\n  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);\n  (void)__Pyx_modinit_function_import_code(__pyx_mstate);\n  /*--- Execution code ---*/\n\n  __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 4, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_version, __pyx_t_2) < (0)) __PYX_ERR(1, 4, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_mstate_global->__pyx_n_u_ta_check_success, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_check_success, __pyx_t_2) < (0)) __PYX_ERR(1, 6, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_mstate_global->__pyx_n_u_ta_initialize, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 50, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_initialize, __pyx_t_2) < (0)) __PYX_ERR(1, 50, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_mstate_global->__pyx_n_u_ta_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_shutdown, __pyx_t_2) < (0)) __PYX_ERR(1, 55, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[2]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_mstate_global->__pyx_n_u_MA_Type, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[2]) {\n    if (unlikely((PyDict_SetItemString(__pyx_t_4, \"__orig_bases__\", __pyx_mstate_global->__pyx_tuple[2]) < 0))) __PYX_ERR(1, 60, __pyx_L1_error)\n  }\n\n  __pyx_t_6 = NULL;\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_9};\n    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 61, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n  }\n  {\n    Py_ssize_t index = -1;\n    PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15};\n    __pyx_t_16 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 61, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_16);\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_16);\n    for (index=0; index < 9; index++) {\n      PyObject* item = __pyx_t_17(__pyx_t_16); if (unlikely(!item)) goto __pyx_L2_unpacking_failed;\n      __Pyx_GOTREF(item);\n      *(temps[index]) = item;\n    }\n    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 9) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n    __pyx_t_17 = NULL;\n    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n    goto __pyx_L3_unpacking_done;\n    __pyx_L2_unpacking_failed:;\n    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n    __pyx_t_17 = NULL;\n    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n    __PYX_ERR(1, 61, __pyx_L1_error)\n    __pyx_L3_unpacking_done:;\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_8) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_9) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_10) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_11) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_12) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_13) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_14) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_15) < (0)) __PYX_ERR(1, 61, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n\n  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 63, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(1, 63, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 76, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_5) < (0)) __PYX_ERR(1, 76, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n\n  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_5);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_5) < (0)) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 79, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2) < (0)) __PYX_ERR(1, 79, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 81, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_2) < (0)) __PYX_ERR(1, 81, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);\n  __pyx_t_2 = __pyx_mstate_global->__pyx_int_0;\n  __pyx_t_4 = __Pyx_PyList_Pack(24, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_ALL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3);\n  __pyx_t_18 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  for (;;) {\n    if (__pyx_t_18 >= 24) break;\n    __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_18, __Pyx_ReferenceSharing_OwnStrongReference);\n    ++__pyx_t_18;\n    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_4) < (0)) __PYX_ERR(1, 82, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_i, __pyx_t_2) < (0)) __PYX_ERR(1, 82, __pyx_L1_error)\n    __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_DECREF(__pyx_t_2);\n    __pyx_t_2 = __pyx_t_4;\n    __pyx_t_4 = 0;\n\n    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 88, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 88, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_5);\n    __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 88, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n    if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_15, __pyx_t_4) < 0))) __PYX_ERR(1, 88, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  }\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 90, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 90, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 96, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 96, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 102, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 102, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 107, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 107, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[4]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[4]) {\n    if (unlikely((PyDict_SetItemString(__pyx_t_4, \"__orig_bases__\", __pyx_mstate_global->__pyx_tuple[4]) < 0))) __PYX_ERR(1, 112, __pyx_L1_error)\n  }\n\n  __pyx_t_5 = NULL;\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_int_12};\n    __pyx_t_15 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 115, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n  }\n  {\n    Py_ssize_t index = -1;\n    PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_6,&__pyx_t_16,&__pyx_t_19,&__pyx_t_20};\n    __pyx_t_21 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 113, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_21);\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_21);\n    for (index=0; index < 12; index++) {\n      PyObject* item = __pyx_t_17(__pyx_t_21); if (unlikely(!item)) goto __pyx_L7_unpacking_failed;\n      __Pyx_GOTREF(item);\n      *(temps[index]) = item;\n    }\n    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_21), 12) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n    __pyx_t_17 = NULL;\n    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;\n    goto __pyx_L8_unpacking_done;\n    __pyx_L7_unpacking_failed:;\n    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;\n    __pyx_t_17 = NULL;\n    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n    __PYX_ERR(1, 113, __pyx_L1_error)\n    __pyx_L8_unpacking_done:;\n  }\n\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_5) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_14) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_13) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_12) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_11) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_10) < (0)) __PYX_ERR(1, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_9) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_8) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_6) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_16) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_19) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_20) < (0)) __PYX_ERR(1, 114, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n\n  __pyx_t_15 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_15) < (0)) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_3 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 117, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 117, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[6]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[6]) {\n    if (unlikely((PyDict_SetItemString(__pyx_t_3, \"__orig_bases__\", __pyx_mstate_global->__pyx_tuple[6]) < 0))) __PYX_ERR(1, 119, __pyx_L1_error)\n  }\n\n  __pyx_t_20 = NULL;\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_mstate_global->__pyx_int_3};\n    __pyx_t_15 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n    if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 120, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_15);\n  }\n  {\n    Py_ssize_t index = -1;\n    __pyx_t_6 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 120, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6);\n    index = 0; __pyx_t_20 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_20)) goto __pyx_L9_unpacking_failed;\n    __Pyx_GOTREF(__pyx_t_20);\n    index = 1; __pyx_t_19 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed;\n    __Pyx_GOTREF(__pyx_t_19);\n    index = 2; __pyx_t_16 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_16)) goto __pyx_L9_unpacking_failed;\n    __Pyx_GOTREF(__pyx_t_16);\n    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_6), 3) < (0)) __PYX_ERR(1, 120, __pyx_L1_error)\n    __pyx_t_17 = NULL;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    goto __pyx_L10_unpacking_done;\n    __pyx_L9_unpacking_failed:;\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __pyx_t_17 = NULL;\n    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);\n    __PYX_ERR(1, 120, __pyx_L1_error)\n    __pyx_L10_unpacking_done:;\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_20) < (0)) __PYX_ERR(1, 120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_19) < (0)) __PYX_ERR(1, 120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_16) < (0)) __PYX_ERR(1, 120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_15 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_15) < (0)) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_4 = NULL;\n  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 122, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};\n    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 122, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_2);\n  }\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 122, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 124, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_2) < (0)) __PYX_ERR(1, 124, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 129, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_2) < (0)) __PYX_ERR(1, 129, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  {\n    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan};\n    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2, __pyx_L1_error)\n  }\n  __pyx_t_2 = __pyx_t_1;\n  __Pyx_GOTREF(__pyx_t_2);\n  {\n    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan};\n    __pyx_t_18 = 0; {\n      __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2, __pyx_L1_error)\n      __Pyx_GOTREF(__pyx_t_3);\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_3) < (0)) __PYX_ERR(4, 2, __pyx_L1_error)\n      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n    }\n  }\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 7, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 7, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_22;\n\n  __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(4, 15, __pyx_L1_error)\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 144, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 142, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 142, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_2) < (0)) __PYX_ERR(4, 142, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 181, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_2) < (0)) __PYX_ERR(4, 181, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 210, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_2) < (0)) __PYX_ERR(4, 210, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 242, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_2) < (0)) __PYX_ERR(4, 242, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 275, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 275, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 273, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 273, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_3) < (0)) __PYX_ERR(4, 273, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 310, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_4 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 308, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 308, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_3) < (0)) __PYX_ERR(4, 308, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_4 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_3) < (0)) __PYX_ERR(4, 341, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 376, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 376, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 376, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 374, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 374, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(4, 374, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(4, 407, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 444, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 442, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 442, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(4, 442, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 474, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(4, 474, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 503, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(4, 503, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 534, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 532, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 532, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(4, 532, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(4, 565, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 599, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 597, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 597, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(4, 597, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 630, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 630, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 630, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 630, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(4, __pyx_t_2, __pyx_t_15, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 628, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 628, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_3) < (0)) __PYX_ERR(4, 628, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 670, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 668, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 668, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_3) < (0)) __PYX_ERR(4, 668, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 701, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_3) < (0)) __PYX_ERR(4, 701, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 735, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 733, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 733, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_3) < (0)) __PYX_ERR(4, 733, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 766, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 766, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 798, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 798, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 830, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_3) < (0)) __PYX_ERR(4, 830, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 862, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_3) < (0)) __PYX_ERR(4, 862, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 894, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_3) < (0)) __PYX_ERR(4, 894, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 926, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_3) < (0)) __PYX_ERR(4, 926, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 958, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_3) < (0)) __PYX_ERR(4, 958, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 992, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 990, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 990, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_3) < (0)) __PYX_ERR(4, 990, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1024, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_3) < (0)) __PYX_ERR(4, 1024, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1056, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_3) < (0)) __PYX_ERR(4, 1056, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1088, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_3) < (0)) __PYX_ERR(4, 1088, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1120, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_3) < (0)) __PYX_ERR(4, 1120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1152, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_3) < (0)) __PYX_ERR(4, 1152, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1184, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_3) < (0)) __PYX_ERR(4, 1184, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1218, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1216, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1216, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_3) < (0)) __PYX_ERR(4, 1216, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1250, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1250, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1282, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1282, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1314, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1314, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1346, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_3) < (0)) __PYX_ERR(4, 1346, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1380, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1378, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1378, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1378, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1414, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1412, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1412, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1412, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1446, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_3) < (0)) __PYX_ERR(4, 1446, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1478, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1478, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1510, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_3) < (0)) __PYX_ERR(4, 1510, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1542, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_3) < (0)) __PYX_ERR(4, 1542, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1574, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_3) < (0)) __PYX_ERR(4, 1574, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1606, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_3) < (0)) __PYX_ERR(4, 1606, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1638, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_3) < (0)) __PYX_ERR(4, 1638, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1670, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_3) < (0)) __PYX_ERR(4, 1670, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1702, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_3) < (0)) __PYX_ERR(4, 1702, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1734, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_3) < (0)) __PYX_ERR(4, 1734, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1766, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 1766, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1798, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_3) < (0)) __PYX_ERR(4, 1798, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1830, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_3) < (0)) __PYX_ERR(4, 1830, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1862, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_3) < (0)) __PYX_ERR(4, 1862, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1894, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_3) < (0)) __PYX_ERR(4, 1894, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1926, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_3) < (0)) __PYX_ERR(4, 1926, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1958, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1958, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1990, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 1990, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2022, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_3) < (0)) __PYX_ERR(4, 2022, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2054, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_3) < (0)) __PYX_ERR(4, 2054, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2088, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2086, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2086, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_3) < (0)) __PYX_ERR(4, 2086, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2122, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2120, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2120, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2120, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2156, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2154, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2154, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2154, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2188, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_3) < (0)) __PYX_ERR(4, 2188, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2220, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_3) < (0)) __PYX_ERR(4, 2220, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2252, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_3) < (0)) __PYX_ERR(4, 2252, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2284, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_3) < (0)) __PYX_ERR(4, 2284, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2316, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_3) < (0)) __PYX_ERR(4, 2316, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2348, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2348, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2380, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 2380, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2412, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_3) < (0)) __PYX_ERR(4, 2412, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2444, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_3) < (0)) __PYX_ERR(4, 2444, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2476, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_3) < (0)) __PYX_ERR(4, 2476, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2508, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_3) < (0)) __PYX_ERR(4, 2508, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2540, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_3) < (0)) __PYX_ERR(4, 2540, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2572, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_3) < (0)) __PYX_ERR(4, 2572, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2604, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2604, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2636, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_3) < (0)) __PYX_ERR(4, 2636, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2668, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 2668, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2700, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_3) < (0)) __PYX_ERR(4, 2700, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2732, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_3) < (0)) __PYX_ERR(4, 2732, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2763, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2761, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2761, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_3) < (0)) __PYX_ERR(4, 2761, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2794, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2792, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2792, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_3) < (0)) __PYX_ERR(4, 2792, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2825, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_3) < (0)) __PYX_ERR(4, 2825, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2854, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_3) < (0)) __PYX_ERR(4, 2854, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2885, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2883, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2883, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 2883, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2914, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(4, 2914, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2947, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2945, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2945, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(4, 2945, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2980, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(4, 2978, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3009, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(4, 3009, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3038, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(4, 3038, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3067, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_3) < (0)) __PYX_ERR(4, 3067, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3096, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_3) < (0)) __PYX_ERR(4, 3096, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3125, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_3) < (0)) __PYX_ERR(4, 3125, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3157, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_3) < (0)) __PYX_ERR(4, 3157, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 3189, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3218, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_3) < (0)) __PYX_ERR(4, 3218, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3249, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3247, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3247, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_3) < (0)) __PYX_ERR(4, 3247, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3279, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_3) < (0)) __PYX_ERR(4, 3279, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3312, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3310, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3310, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_3) < (0)) __PYX_ERR(4, 3310, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3343, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3341, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_3) < (0)) __PYX_ERR(4, 3341, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3374, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3372, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3372, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_3) < (0)) __PYX_ERR(4, 3372, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3405, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3403, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3403, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_3) < (0)) __PYX_ERR(4, 3403, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3434, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_3) < (0)) __PYX_ERR(4, 3434, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3463, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_3) < (0)) __PYX_ERR(4, 3463, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_4 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3492, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3492, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_4);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_16) < (0)) __PYX_ERR(4, 3492, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3526, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3526, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3526, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_15 = PyTuple_Pack(3, __pyx_t_16, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 3524, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3524, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_3) < (0)) __PYX_ERR(4, 3524, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_15 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_20 = PyTuple_Pack(6, __pyx_t_3, __pyx_t_15, __pyx_t_4, __pyx_t_16, __pyx_t_2, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3563, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3563, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_19) < (0)) __PYX_ERR(4, 3563, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3607, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3605, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3605, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_19) < (0)) __PYX_ERR(4, 3605, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3644, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3644, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n\n  __pyx_t_2 = PyTuple_Pack(2, __pyx_t_19, __pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3642, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_20) < (0)) __PYX_ERR(4, 3642, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n\n  __pyx_t_20 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(3, __pyx_t_20, __pyx_t_2, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_19) < (0)) __PYX_ERR(4, 3677, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3714, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3712, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3712, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_19) < (0)) __PYX_ERR(4, 3712, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3745, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3743, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3743, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 3743, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3777, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_19) < (0)) __PYX_ERR(4, 3777, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3809, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3807, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3807, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_19) < (0)) __PYX_ERR(4, 3807, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3843, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3841, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3841, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_19) < (0)) __PYX_ERR(4, 3841, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3874, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3872, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3872, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_19) < (0)) __PYX_ERR(4, 3872, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3906, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3904, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3904, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_19) < (0)) __PYX_ERR(4, 3904, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3937, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3935, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3935, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 3935, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3971, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3969, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3969, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_19) < (0)) __PYX_ERR(4, 3969, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4005, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4003, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4003, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 4003, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4045, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4043, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4043, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_19) < (0)) __PYX_ERR(4, 4043, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4078, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4076, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4076, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_19) < (0)) __PYX_ERR(4, 4076, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4110, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4108, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4108, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_19) < (0)) __PYX_ERR(4, 4108, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4139, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_19) < (0)) __PYX_ERR(4, 4139, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4172, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4170, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4170, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_19) < (0)) __PYX_ERR(4, 4170, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4203, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_19) < (0)) __PYX_ERR(4, 4203, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4236, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4234, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4234, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_19) < (0)) __PYX_ERR(4, 4234, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4269, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4267, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4267, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_19) < (0)) __PYX_ERR(4, 4267, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4301, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4301, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4301, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4299, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4299, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_2) < (0)) __PYX_ERR(4, 4299, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4334, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4332, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4332, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_2) < (0)) __PYX_ERR(4, 4332, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4365, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4363, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4363, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_2) < (0)) __PYX_ERR(4, 4363, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4396, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4394, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4394, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_2) < (0)) __PYX_ERR(4, 4394, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4427, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4425, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4425, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_2) < (0)) __PYX_ERR(4, 4425, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4458, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4456, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4456, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_2) < (0)) __PYX_ERR(4, 4456, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4489, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_20 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4489, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n\n  __pyx_t_16 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_20); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4487, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4487, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_20) < (0)) __PYX_ERR(4, 4487, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n\n  __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4522, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_8 = PyTuple_Pack(8, __pyx_t_20, __pyx_t_16, __pyx_t_2, __pyx_t_19, __pyx_t_4, __pyx_t_15, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4520, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4520, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_6) < (0)) __PYX_ERR(4, 4520, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4559, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_6) < (0)) __PYX_ERR(4, 4559, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4588, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_6) < (0)) __PYX_ERR(4, 4588, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4619, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4617, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4617, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(4, 4617, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4648, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_6) < (0)) __PYX_ERR(4, 4648, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_8 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n\n  __pyx_t_3 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_8) < (0)) __PYX_ERR(4, 4677, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n  __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4711, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_19 = PyTuple_Pack(5, __pyx_t_8, __pyx_t_3, __pyx_t_6, __pyx_t_15, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4709, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4709, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_4) < (0)) __PYX_ERR(4, 4709, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4751, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4751, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_15 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4751, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n\n  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_19, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4749, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4749, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_15) < (0)) __PYX_ERR(4, 4749, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n\n  __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(4, __pyx_t_15, __pyx_t_6, __pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_4) < (0)) __PYX_ERR(4, 4787, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4824, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_4) < (0)) __PYX_ERR(4, 4824, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4857, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4855, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4855, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_4) < (0)) __PYX_ERR(4, 4855, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4888, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4888, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_19 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4886, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4886, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_3) < (0)) __PYX_ERR(4, 4886, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4918, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_3) < (0)) __PYX_ERR(4, 4918, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4947, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_3) < (0)) __PYX_ERR(4, 4947, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4976, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4976, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 4976, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5007, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_3) < (0)) __PYX_ERR(4, 5007, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5040, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5038, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5038, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_3) < (0)) __PYX_ERR(4, 5038, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5071, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5069, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5069, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_3) < (0)) __PYX_ERR(4, 5069, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5102, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5100, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5100, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_3) < (0)) __PYX_ERR(4, 5100, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5131, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_3) < (0)) __PYX_ERR(4, 5131, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5164, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5164, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5164, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5162, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5162, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_4) < (0)) __PYX_ERR(4, 5162, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5199, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5199, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_19 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5197, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5197, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_6) < (0)) __PYX_ERR(4, 5197, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5229, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_6) < (0)) __PYX_ERR(4, 5229, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5262, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5260, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_6) < (0)) __PYX_ERR(4, 5260, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5295, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5293, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5293, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_6) < (0)) __PYX_ERR(4, 5293, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyList_Pack(161, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5324, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_6) < (0)) __PYX_ERR(4, 5324, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_math, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_math, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error)\n  __pyx_t_6 = __pyx_t_1;\n  __Pyx_GOTREF(__pyx_t_6);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_math, __pyx_t_6) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)\n  __pyx_t_6 = __pyx_t_1;\n  __Pyx_GOTREF(__pyx_t_6);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_6) < (0)) __PYX_ERR(2, 5, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_24, &__pyx_t_25);\n    __Pyx_XGOTREF(__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_24);\n    __Pyx_XGOTREF(__pyx_t_25);\n    /*try:*/ {\n\n      {\n        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict};\n        __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 7, __pyx_L11_error)\n      }\n      __pyx_t_6 = __pyx_t_26;\n      __Pyx_GOTREF(__pyx_t_6);\n      {\n        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict};\n        __pyx_t_18 = 0; {\n          __pyx_t_19 = __Pyx_ImportFrom(__pyx_t_6, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 7, __pyx_L11_error)\n          __Pyx_GOTREF(__pyx_t_19);\n          if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_19) < (0)) __PYX_ERR(2, 7, __pyx_L11_error)\n          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n        }\n      }\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n    }\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;\n    __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;\n    goto __pyx_L16_try_end;\n    __pyx_L11_error:;\n    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;\n    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n    __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError))));\n    if (__pyx_t_23) {\n      __Pyx_AddTraceback(\"talib._ta_lib\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_19, &__pyx_t_4) < 0) __PYX_ERR(2, 8, __pyx_L13_except_error)\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_19);\n      __Pyx_XGOTREF(__pyx_t_4);\n\n      {\n        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict};\n        __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ordereddict, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_ordereddict, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 9, __pyx_L13_except_error)\n      }\n      __pyx_t_3 = __pyx_t_26;\n      __Pyx_GOTREF(__pyx_t_3);\n      {\n        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict};\n        __pyx_t_18 = 0; {\n          __pyx_t_15 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 9, __pyx_L13_except_error)\n          __Pyx_GOTREF(__pyx_t_15);\n          if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_15) < (0)) __PYX_ERR(2, 9, __pyx_L13_except_error)\n          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n        }\n      }\n      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      goto __pyx_L12_exception_handled;\n    }\n    goto __pyx_L13_except_error;\n\n    __pyx_L13_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25);\n    goto __pyx_L1_error;\n    __pyx_L12_exception_handled:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25);\n    __pyx_L16_try_end:;\n  }\n\n  __pyx_t_25 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_25)) __PYX_ERR(2, 11, __pyx_L1_error)\n  __pyx_t_4 = __pyx_t_25;\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_4) < (0)) __PYX_ERR(2, 11, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_25 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_sys, -1); if (unlikely(!__pyx_t_25)) __PYX_ERR(2, 12, __pyx_L1_error)\n  __pyx_t_4 = __pyx_t_25;\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_4) < (0)) __PYX_ERR(2, 12, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(2, 18, __pyx_L1_error)\n\n  __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 21, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price0, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price1, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_periods, __pyx_mstate_global->__pyx_n_u_periods) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_4) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyList_Pack(1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 27, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyList_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_5numpy_ndarray)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 28, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 28, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_25, &__pyx_t_24, &__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_25);\n    __Pyx_XGOTREF(__pyx_t_24);\n    __Pyx_XGOTREF(__pyx_t_1);\n    /*try:*/ {\n\n      __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_pandas, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 32, __pyx_L19_error)\n      __pyx_t_4 = __pyx_t_26;\n      __Pyx_GOTREF(__pyx_t_4);\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pandas, __pyx_t_4) < (0)) __PYX_ERR(2, 32, __pyx_L19_error)\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 33, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 33, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n      __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_6); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L19_error)\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 34, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 34, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 34, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_19); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 34, __pyx_L19_error)\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 35, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 35, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_6) < (0)) __PYX_ERR(2, 35, __pyx_L19_error)\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 36, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 36, __pyx_L19_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_19) < (0)) __PYX_ERR(2, 36, __pyx_L19_error)\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n    }\n    __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;\n    __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    goto __pyx_L24_try_end;\n    __pyx_L19_error:;\n    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;\n    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n    __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError))));\n    if (__pyx_t_23) {\n      __Pyx_AddTraceback(\"talib._ta_lib\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_19, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(2, 37, __pyx_L21_except_error)\n      __Pyx_XGOTREF(__pyx_t_19);\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_4);\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_6) < (0)) __PYX_ERR(2, 37, __pyx_L21_except_error)\n\n      {\n        __Pyx_PyThreadState_declare\n        __Pyx_PyThreadState_assign\n        __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_28, &__pyx_t_29);\n        __Pyx_XGOTREF(__pyx_t_26);\n        __Pyx_XGOTREF(__pyx_t_28);\n        __Pyx_XGOTREF(__pyx_t_29);\n        /*try:*/ {\n\n          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 39, __pyx_L27_error)\n          __Pyx_GOTREF(__pyx_t_3);\n          __pyx_t_31 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_3); \n          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n          __pyx_t_32 = (!__pyx_t_31);\n          if (!__pyx_t_32) {\n          } else {\n            __pyx_t_30 = __pyx_t_32;\n            goto __pyx_L36_bool_binop_done;\n          }\n          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 39, __pyx_L27_error)\n          __Pyx_GOTREF(__pyx_t_3);\n          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 39, __pyx_L27_error)\n          __Pyx_GOTREF(__pyx_t_15);\n          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n          __pyx_t_32 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 39, __pyx_L27_error)\n          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n          __pyx_t_30 = __pyx_t_32;\n          __pyx_L36_bool_binop_done:;\n          if (unlikely(__pyx_t_30)) {\n\n            __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 41, __pyx_L27_error)\n            __Pyx_GOTREF(__pyx_t_15);\n            __Pyx_Raise(__pyx_t_15, 0, 0, 0);\n            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n            __PYX_ERR(2, 41, __pyx_L27_error)\n\n          }\n\n        }\n        __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;\n        __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;\n        __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;\n        goto __pyx_L34_try_end;\n        __pyx_L27_error:;\n        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;\n        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;\n        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n        __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;\n        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n        __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError))));\n        if (__pyx_t_23) {\n          __Pyx_ErrRestore(0,0,0);\n          goto __pyx_L28_exception_handled;\n        }\n        goto __pyx_L29_except_error;\n\n        __pyx_L29_except_error:;\n        __Pyx_XGIVEREF(__pyx_t_26);\n        __Pyx_XGIVEREF(__pyx_t_28);\n        __Pyx_XGIVEREF(__pyx_t_29);\n        __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_28, __pyx_t_29);\n        goto __pyx_L21_except_error;\n        __pyx_L28_exception_handled:;\n        __Pyx_XGIVEREF(__pyx_t_26);\n        __Pyx_XGIVEREF(__pyx_t_28);\n        __Pyx_XGIVEREF(__pyx_t_29);\n        __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_28, __pyx_t_29);\n        __pyx_L34_try_end:;\n      }\n\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 46, __pyx_L21_except_error)\n\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 47, __pyx_L21_except_error)\n      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      goto __pyx_L20_exception_handled;\n    }\n    goto __pyx_L21_except_error;\n\n    __pyx_L21_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_1);\n    goto __pyx_L1_error;\n    __pyx_L20_exception_handled:;\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_1);\n    __pyx_L24_try_end:;\n  }\n\n  {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_24, &__pyx_t_25);\n    __Pyx_XGOTREF(__pyx_t_1);\n    __Pyx_XGOTREF(__pyx_t_24);\n    __Pyx_XGOTREF(__pyx_t_25);\n    /*try:*/ {\n\n      __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_polars, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(2, 51, __pyx_L40_error)\n      __pyx_t_4 = __pyx_t_29;\n      __Pyx_GOTREF(__pyx_t_4);\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_polars, __pyx_t_4) < (0)) __PYX_ERR(2, 51, __pyx_L40_error)\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 52, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 52, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 52, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_19); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L40_error)\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 53, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 53, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_4);\n      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 53, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n      __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_19, __pyx_t_6); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 53, __pyx_L40_error)\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 54, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 54, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_19) < (0)) __PYX_ERR(2, 54, __pyx_L40_error)\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n      __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 55, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_19);\n      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 55, __pyx_L40_error)\n      __Pyx_GOTREF(__pyx_t_6);\n      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_6) < (0)) __PYX_ERR(2, 55, __pyx_L40_error)\n      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n    }\n    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;\n    __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;\n    __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;\n    goto __pyx_L45_try_end;\n    __pyx_L40_error:;\n    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;\n    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;\n    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n    __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError))));\n    if (__pyx_t_23) {\n      __Pyx_AddTraceback(\"talib._ta_lib\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_19, &__pyx_t_4) < 0) __PYX_ERR(2, 56, __pyx_L42_except_error)\n      __Pyx_XGOTREF(__pyx_t_6);\n      __Pyx_XGOTREF(__pyx_t_19);\n      __Pyx_XGOTREF(__pyx_t_4);\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_19) < (0)) __PYX_ERR(2, 56, __pyx_L42_except_error)\n\n      {\n        __Pyx_PyThreadState_declare\n        __Pyx_PyThreadState_assign\n        __Pyx_ExceptionSave(&__pyx_t_29, &__pyx_t_28, &__pyx_t_26);\n        __Pyx_XGOTREF(__pyx_t_29);\n        __Pyx_XGOTREF(__pyx_t_28);\n        __Pyx_XGOTREF(__pyx_t_26);\n        /*try:*/ {\n\n          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 58, __pyx_L48_error)\n          __Pyx_GOTREF(__pyx_t_15);\n          __pyx_t_32 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_15); \n          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n          __pyx_t_31 = (!__pyx_t_32);\n          if (!__pyx_t_31) {\n          } else {\n            __pyx_t_30 = __pyx_t_31;\n            goto __pyx_L57_bool_binop_done;\n          }\n          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 58, __pyx_L48_error)\n          __Pyx_GOTREF(__pyx_t_15);\n          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 58, __pyx_L48_error)\n          __Pyx_GOTREF(__pyx_t_3);\n          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n          __pyx_t_31 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(2, 58, __pyx_L48_error)\n          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n          __pyx_t_30 = __pyx_t_31;\n          __pyx_L57_bool_binop_done:;\n          if (unlikely(__pyx_t_30)) {\n\n            __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 60, __pyx_L48_error)\n            __Pyx_GOTREF(__pyx_t_3);\n            __Pyx_Raise(__pyx_t_3, 0, 0, 0);\n            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n            __PYX_ERR(2, 60, __pyx_L48_error)\n\n          }\n\n        }\n        __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;\n        __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;\n        __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;\n        goto __pyx_L55_try_end;\n        __pyx_L48_error:;\n        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;\n        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;\n        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;\n        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;\n        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;\n        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;\n        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n        __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;\n        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;\n        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;\n        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;\n        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;\n\n        __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError))));\n        if (__pyx_t_23) {\n          __Pyx_ErrRestore(0,0,0);\n          goto __pyx_L49_exception_handled;\n        }\n        goto __pyx_L50_except_error;\n\n        __pyx_L50_except_error:;\n        __Pyx_XGIVEREF(__pyx_t_29);\n        __Pyx_XGIVEREF(__pyx_t_28);\n        __Pyx_XGIVEREF(__pyx_t_26);\n        __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_26);\n        goto __pyx_L42_except_error;\n        __pyx_L49_exception_handled:;\n        __Pyx_XGIVEREF(__pyx_t_29);\n        __Pyx_XGIVEREF(__pyx_t_28);\n        __Pyx_XGIVEREF(__pyx_t_26);\n        __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_26);\n        __pyx_L55_try_end:;\n      }\n\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 65, __pyx_L42_except_error)\n\n      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 66, __pyx_L42_except_error)\n      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;\n      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;\n      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;\n      goto __pyx_L41_exception_handled;\n    }\n    goto __pyx_L42_except_error;\n\n    __pyx_L42_except_error:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25);\n    goto __pyx_L1_error;\n    __pyx_L41_exception_handled:;\n    __Pyx_XGIVEREF(__pyx_t_1);\n    __Pyx_XGIVEREF(__pyx_t_24);\n    __Pyx_XGIVEREF(__pyx_t_25);\n    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25);\n    __pyx_L45_try_end:;\n  }\n\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 68, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_19 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 68, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_19) < (0)) __PYX_ERR(2, 68, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 69, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_19); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 69, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 69, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 72, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 72, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = PyObject_RichCompare(__pyx_t_19, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 72, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(2, 72, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (__pyx_t_30) {\n\n    __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 74, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n    PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n    #endif\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_4) < (0)) __PYX_ERR(2, 74, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n    __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 77, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n    PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n    #endif\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_4) < (0)) __PYX_ERR(2, 77, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n    goto __pyx_L61;\n  }\n\n  /*else*/ {\n    __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 82, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n    PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n    #endif\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_4) < (0)) __PYX_ERR(2, 82, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n    __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 85, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_4);\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n    PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n    #endif\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_4) < (0)) __PYX_ERR(2, 85, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  }\n  __pyx_L61:;\n\n  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[8]); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_19 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_19, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  if (__pyx_t_4 != __pyx_mstate_global->__pyx_tuple[8]) {\n    if (unlikely((PyDict_SetItemString(__pyx_t_6, \"__orig_bases__\", __pyx_mstate_global->__pyx_tuple[8]) < 0))) __PYX_ERR(2, 88, __pyx_L1_error)\n  }\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_3) < (0)) __PYX_ERR(2, 117, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_15 = NULL;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_mstate_global->__pyx_n_u_Function___local, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 130, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 130, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_3) < (0)) __PYX_ERR(2, 130, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_8 = NULL;\n  __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_mstate_global->__pyx_n_u_Function_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 172, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_15};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 172, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_3) < (0)) __PYX_ERR(2, 172, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_15 = NULL;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_function_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 179, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 179, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 179, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_8 = NULL;\n  __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_output_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 186, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_15};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 186, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 186, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 193, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 193, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 204, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 204, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_15 = NULL;\n  __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_names);\n  if (unlikely(!__pyx_t_8)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_input_names);\n  }\n  if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 214, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_2 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_names);\n  if (unlikely(!__pyx_t_2)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_input_names);\n  }\n  if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 214, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_t_8, __pyx_t_2};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 214, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 214, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 216, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 216, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 227, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 227, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_2 = NULL;\n  __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_arrays);\n  if (unlikely(!__pyx_t_8)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_input_arrays);\n  }\n  if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 274, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_15 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_arrays);\n  if (unlikely(!__pyx_t_15)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_set_input_arrays);\n  }\n  if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 274, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_8, __pyx_t_15};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 274, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 274, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 276, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 276, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 286, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[9]);\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 286, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_15 = NULL;\n  __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_parameters);\n  if (unlikely(!__pyx_t_8)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_parameters);\n  }\n  if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 299, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_2 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_parameters);\n  if (unlikely(!__pyx_t_2)) {\n    PyErr_Clear();\n    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_parameters);\n  }\n  if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 299, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_t_8, __pyx_t_2};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 299, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 299, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 301, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_3) < (0)) __PYX_ERR(2, 301, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_2 = NULL;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_mstate_global->__pyx_n_u_Function_lookback, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 336, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 336, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_3) < (0)) __PYX_ERR(2, 336, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_8 = NULL;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_mstate_global->__pyx_n_u_Function_output_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 357, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;\n    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 357, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_3) < (0)) __PYX_ERR(2, 357, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_2 = NULL;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_mstate_global->__pyx_n_u_Function_outputs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 367, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __pyx_t_7 = 1;\n  {\n    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};\n    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));\n    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;\n    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 367, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n  }\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 367, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 399, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[9]);\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_3) < (0)) __PYX_ERR(2, 399, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_3) < (0)) __PYX_ERR(2, 411, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 477, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_3) < (0)) __PYX_ERR(2, 477, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 489, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_3) < (0)) __PYX_ERR(2, 489, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_3) < (0)) __PYX_ERR(2, 520, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 535, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_3) < (0)) __PYX_ERR(2, 535, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 545, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_3) < (0)) __PYX_ERR(2, 545, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 548, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_3) < (0)) __PYX_ERR(2, 548, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_3) < (0)) __PYX_ERR(2, 551, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_4, __pyx_t_6, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_3) < (0)) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_4) < (0)) __PYX_ERR(2, 565, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 577, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_4) < (0)) __PYX_ERR(2, 577, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 589, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_4) < (0)) __PYX_ERR(2, 589, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 615, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 615, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 615, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 615, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 615, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 614, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 623, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 623, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 622, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 633, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 633, __pyx_L1_error)\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 632, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 648, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 648, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 667, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 667, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 688, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 688, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 710, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 710, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 730, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_4) < (0)) __PYX_ERR(2, 730, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(5, 7, __pyx_L1_error)\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 11, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 9, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365stream_ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 9, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(5, 9, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367stream_ACOS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 50, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACOS, __pyx_t_4) < (0)) __PYX_ERR(5, 50, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369stream_AD, 0, __pyx_mstate_global->__pyx_n_u_stream_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 77, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AD, __pyx_t_4) < (0)) __PYX_ERR(5, 77, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371stream_ADD, 0, __pyx_mstate_global->__pyx_n_u_stream_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 113, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADD, __pyx_t_4) < (0)) __PYX_ERR(5, 113, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 146, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 146, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_6 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 144, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373stream_ADOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 144, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, __pyx_t_19) < (0)) __PYX_ERR(5, 144, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 185, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 183, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375stream_ADX, 0, __pyx_mstate_global->__pyx_n_u_stream_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 183, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADX, __pyx_t_19) < (0)) __PYX_ERR(5, 183, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 220, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 218, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377stream_ADXR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 218, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADXR, __pyx_t_19) < (0)) __PYX_ERR(5, 218, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 255, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 253, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379stream_APO, 0, __pyx_mstate_global->__pyx_n_u_stream_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 253, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_APO, __pyx_t_4) < (0)) __PYX_ERR(5, 253, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 286, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 284, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381stream_AROON, 0, __pyx_mstate_global->__pyx_n_u_stream_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 284, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROON, __pyx_t_4) < (0)) __PYX_ERR(5, 284, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 321, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 319, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383stream_AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 319, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, __pyx_t_4) < (0)) __PYX_ERR(5, 319, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385stream_ASIN, 0, __pyx_mstate_global->__pyx_n_u_stream_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 351, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ASIN, __pyx_t_4) < (0)) __PYX_ERR(5, 351, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387stream_ATAN, 0, __pyx_mstate_global->__pyx_n_u_stream_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 378, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATAN, __pyx_t_4) < (0)) __PYX_ERR(5, 378, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 405, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389stream_ATR, 0, __pyx_mstate_global->__pyx_n_u_stream_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 405, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATR, __pyx_t_4) < (0)) __PYX_ERR(5, 405, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391stream_AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 440, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, __pyx_t_4) < (0)) __PYX_ERR(5, 440, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 478, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 476, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393stream_AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 476, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, __pyx_t_4) < (0)) __PYX_ERR(5, 476, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 507, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(4, __pyx_t_4, __pyx_t_3, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395stream_BBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, __pyx_t_19) < (0)) __PYX_ERR(5, 505, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 545, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 543, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397stream_BETA, 0, __pyx_mstate_global->__pyx_n_u_stream_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 543, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BETA, __pyx_t_19) < (0)) __PYX_ERR(5, 543, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399stream_BOP, 0, __pyx_mstate_global->__pyx_n_u_stream_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 576, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BOP, __pyx_t_19) < (0)) __PYX_ERR(5, 576, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 614, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 612, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401stream_CCI, 0, __pyx_mstate_global->__pyx_n_u_stream_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 612, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CCI, __pyx_t_19) < (0)) __PYX_ERR(5, 612, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403stream_CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 647, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 647, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405stream_CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 683, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 683, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407stream_CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, __pyx_t_19) < (0)) __PYX_ERR(5, 719, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409stream_CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 755, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_t_19) < (0)) __PYX_ERR(5, 755, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411stream_CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 791, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_t_19) < (0)) __PYX_ERR(5, 791, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 827, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_t_19) < (0)) __PYX_ERR(5, 827, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 863, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_t_19) < (0)) __PYX_ERR(5, 863, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 901, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 899, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417stream_CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 899, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_t_19) < (0)) __PYX_ERR(5, 899, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 937, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_t_19) < (0)) __PYX_ERR(5, 937, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421stream_CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 973, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, __pyx_t_19) < (0)) __PYX_ERR(5, 973, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423stream_CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1009, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_t_19) < (0)) __PYX_ERR(5, 1009, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1045, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_t_19) < (0)) __PYX_ERR(5, 1045, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1081, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_t_19) < (0)) __PYX_ERR(5, 1081, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1117, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_t_19) < (0)) __PYX_ERR(5, 1117, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1155, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1153, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1153, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_t_19) < (0)) __PYX_ERR(5, 1153, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433stream_CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1191, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1191, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435stream_CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1227, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1227, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1263, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1263, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439stream_CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1299, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, __pyx_t_19) < (0)) __PYX_ERR(5, 1299, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1337, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1335, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1335, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1335, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1375, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1373, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443stream_CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1373, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1373, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1411, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_t_19) < (0)) __PYX_ERR(5, 1411, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1447, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1447, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1483, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, __pyx_t_19) < (0)) __PYX_ERR(5, 1483, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1519, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_t_19) < (0)) __PYX_ERR(5, 1519, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1555, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, __pyx_t_19) < (0)) __PYX_ERR(5, 1555, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1591, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_t_19) < (0)) __PYX_ERR(5, 1591, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1627, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_t_19) < (0)) __PYX_ERR(5, 1627, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1663, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, __pyx_t_19) < (0)) __PYX_ERR(5, 1663, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1699, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_t_19) < (0)) __PYX_ERR(5, 1699, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1735, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_t_19) < (0)) __PYX_ERR(5, 1735, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1771, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 1771, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1807, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, __pyx_t_19) < (0)) __PYX_ERR(5, 1807, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1843, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_t_19) < (0)) __PYX_ERR(5, 1843, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1879, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, __pyx_t_19) < (0)) __PYX_ERR(5, 1879, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_t_19) < (0)) __PYX_ERR(5, 1915, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1951, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_t_19) < (0)) __PYX_ERR(5, 1951, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1987, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1987, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2023, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 2023, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2059, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, __pyx_t_19) < (0)) __PYX_ERR(5, 2059, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2095, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_t_19) < (0)) __PYX_ERR(5, 2095, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2133, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2131, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2131, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, __pyx_t_19) < (0)) __PYX_ERR(5, 2131, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2171, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2169, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2169, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2169, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2209, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2207, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2207, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2207, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2245, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, __pyx_t_19) < (0)) __PYX_ERR(5, 2245, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2281, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, __pyx_t_19) < (0)) __PYX_ERR(5, 2281, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2317, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_t_19) < (0)) __PYX_ERR(5, 2317, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2353, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_t_19) < (0)) __PYX_ERR(5, 2353, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2389, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_t_19) < (0)) __PYX_ERR(5, 2389, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2425, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2425, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2461, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 2461, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2497, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_t_19) < (0)) __PYX_ERR(5, 2497, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2533, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_t_19) < (0)) __PYX_ERR(5, 2533, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2569, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_t_19) < (0)) __PYX_ERR(5, 2569, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2605, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, __pyx_t_19) < (0)) __PYX_ERR(5, 2605, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2641, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_t_19) < (0)) __PYX_ERR(5, 2641, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2677, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, __pyx_t_19) < (0)) __PYX_ERR(5, 2677, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2713, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2713, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2749, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_t_19) < (0)) __PYX_ERR(5, 2749, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2785, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 2785, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2821, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_t_19) < (0)) __PYX_ERR(5, 2821, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_CEIL, 0, __pyx_mstate_global->__pyx_n_u_stream_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2857, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CEIL, __pyx_t_19) < (0)) __PYX_ERR(5, 2857, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2886, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2884, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_CMO, 0, __pyx_mstate_global->__pyx_n_u_stream_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2884, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMO, __pyx_t_19) < (0)) __PYX_ERR(5, 2884, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_CORREL, 0, __pyx_mstate_global->__pyx_n_u_stream_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CORREL, __pyx_t_19) < (0)) __PYX_ERR(5, 2913, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_COS, 0, __pyx_mstate_global->__pyx_n_u_stream_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2946, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COS, __pyx_t_19) < (0)) __PYX_ERR(5, 2946, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_COSH, 0, __pyx_mstate_global->__pyx_n_u_stream_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2973, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COSH, __pyx_t_19) < (0)) __PYX_ERR(5, 2973, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3002, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3000, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_DEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3000, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DEMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3000, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_DIV, 0, __pyx_mstate_global->__pyx_n_u_stream_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3029, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DIV, __pyx_t_19) < (0)) __PYX_ERR(5, 3029, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3062, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3060, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_DX, 0, __pyx_mstate_global->__pyx_n_u_stream_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3060, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DX, __pyx_t_19) < (0)) __PYX_ERR(5, 3060, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3097, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3095, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_EMA, 0, __pyx_mstate_global->__pyx_n_u_stream_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3095, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3095, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_EXP, 0, __pyx_mstate_global->__pyx_n_u_stream_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3124, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EXP, __pyx_t_19) < (0)) __PYX_ERR(5, 3124, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_FLOOR, 0, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3151, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, __pyx_t_19) < (0)) __PYX_ERR(5, 3151, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3178, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, __pyx_t_19) < (0)) __PYX_ERR(5, 3178, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3205, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, __pyx_t_19) < (0)) __PYX_ERR(5, 3205, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3232, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, __pyx_t_19) < (0)) __PYX_ERR(5, 3232, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3262, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, __pyx_t_19) < (0)) __PYX_ERR(5, 3262, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3292, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 3292, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3319, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, __pyx_t_19) < (0)) __PYX_ERR(5, 3319, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3348, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3346, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_IMI, 0, __pyx_mstate_global->__pyx_n_u_stream_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3346, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_IMI, __pyx_t_19) < (0)) __PYX_ERR(5, 3346, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3380, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3378, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_KAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3378, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KAMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3378, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3409, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3407, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, __pyx_t_19) < (0)) __PYX_ERR(5, 3407, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3438, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3436, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3436, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_t_19) < (0)) __PYX_ERR(5, 3436, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3467, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3465, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3465, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_t_19) < (0)) __PYX_ERR(5, 3465, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3496, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3494, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_t_19) < (0)) __PYX_ERR(5, 3494, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_LN, 0, __pyx_mstate_global->__pyx_n_u_stream_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3523, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LN, __pyx_t_19) < (0)) __PYX_ERR(5, 3523, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_LOG10, 0, __pyx_mstate_global->__pyx_n_u_stream_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3550, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LOG10, __pyx_t_19) < (0)) __PYX_ERR(5, 3550, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3579, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3579, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n\n  __pyx_t_6 = PyTuple_Pack(2, __pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3577, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_MA, 0, __pyx_mstate_global->__pyx_n_u_stream_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3577, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_6);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MA, __pyx_t_8) < (0)) __PYX_ERR(5, 3577, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n\n  __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3609, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_3 = PyTuple_Pack(3, __pyx_t_8, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3607, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_MACD, 0, __pyx_mstate_global->__pyx_n_u_stream_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3607, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_3);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACD, __pyx_t_19) < (0)) __PYX_ERR(5, 3607, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3646, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(6, __pyx_t_19, __pyx_t_3, __pyx_t_6, __pyx_t_8, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3644, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3644, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, __pyx_t_2) < (0)) __PYX_ERR(5, 3644, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3686, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3684, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3684, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, __pyx_t_2) < (0)) __PYX_ERR(5, 3684, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3721, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n\n  __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_MAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3719, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_4);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAMA, __pyx_t_15) < (0)) __PYX_ERR(5, 3719, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n\n  __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3754, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3754, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3754, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(3, __pyx_t_15, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3752, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_MAVP, 0, __pyx_mstate_global->__pyx_n_u_stream_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3752, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAVP, __pyx_t_2) < (0)) __PYX_ERR(5, 3752, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3789, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_MAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3787, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAX, __pyx_t_2) < (0)) __PYX_ERR(5, 3787, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3818, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3816, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3816, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 3816, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3845, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 3845, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3877, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3875, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_MFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3875, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MFI, __pyx_t_2) < (0)) __PYX_ERR(5, 3875, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3915, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3913, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, __pyx_t_2) < (0)) __PYX_ERR(5, 3913, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3944, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3942, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3942, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 3942, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3976, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3974, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_MIN, 0, __pyx_mstate_global->__pyx_n_u_stream_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3974, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIN, __pyx_t_2) < (0)) __PYX_ERR(5, 3974, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4005, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4003, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_MININDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4003, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 4003, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4034, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4032, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_MINMAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4032, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, __pyx_t_2) < (0)) __PYX_ERR(5, 4032, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4066, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4064, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 4064, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4098, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4096, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4096, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, __pyx_t_2) < (0)) __PYX_ERR(5, 4096, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4133, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4131, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4131, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, __pyx_t_2) < (0)) __PYX_ERR(5, 4131, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4165, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4163, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_MOM, 0, __pyx_mstate_global->__pyx_n_u_stream_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4163, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MOM, __pyx_t_2) < (0)) __PYX_ERR(5, 4163, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_MULT, 0, __pyx_mstate_global->__pyx_n_u_stream_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4192, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MULT, __pyx_t_2) < (0)) __PYX_ERR(5, 4192, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4225, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4223, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_NATR, 0, __pyx_mstate_global->__pyx_n_u_stream_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4223, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NATR, __pyx_t_2) < (0)) __PYX_ERR(5, 4223, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_OBV, 0, __pyx_mstate_global->__pyx_n_u_stream_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4258, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_OBV, __pyx_t_2) < (0)) __PYX_ERR(5, 4258, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4291, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, __pyx_t_2) < (0)) __PYX_ERR(5, 4289, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4326, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n\n  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4324, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4324, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, __pyx_t_2) < (0)) __PYX_ERR(5, 4324, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4358, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4358, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4358, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4356, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_PPO, 0, __pyx_mstate_global->__pyx_n_u_stream_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4356, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PPO, __pyx_t_4) < (0)) __PYX_ERR(5, 4356, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4389, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4387, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_ROC, 0, __pyx_mstate_global->__pyx_n_u_stream_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4387, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROC, __pyx_t_4) < (0)) __PYX_ERR(5, 4387, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4418, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4416, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_ROCP, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4416, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCP, __pyx_t_4) < (0)) __PYX_ERR(5, 4416, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4447, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4445, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_ROCR, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4445, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR, __pyx_t_4) < (0)) __PYX_ERR(5, 4445, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4476, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4474, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_ROCR100, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4474, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, __pyx_t_4) < (0)) __PYX_ERR(5, 4474, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4505, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n\n  __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4503, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_RSI, 0, __pyx_mstate_global->__pyx_n_u_stream_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4503, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RSI, __pyx_t_4) < (0)) __PYX_ERR(5, 4503, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n\n  __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4534, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_15 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4534, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n\n  __pyx_t_8 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4532, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_SAR, 0, __pyx_mstate_global->__pyx_n_u_stream_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4532, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_8);\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAR, __pyx_t_15) < (0)) __PYX_ERR(5, 4532, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n\n  __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_15);\n  __pyx_t_8 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_8);\n  __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_4);\n  __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4567, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_20 = PyTuple_Pack(8, __pyx_t_15, __pyx_t_8, __pyx_t_4, __pyx_t_2, __pyx_t_6, __pyx_t_3, __pyx_t_19, __pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;\n  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;\n  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_SAREXT, 0, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4565, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, __pyx_t_16) < (0)) __PYX_ERR(5, 4565, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_SIN, 0, __pyx_mstate_global->__pyx_n_u_stream_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4604, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SIN, __pyx_t_16) < (0)) __PYX_ERR(5, 4604, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_SINH, 0, __pyx_mstate_global->__pyx_n_u_stream_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4631, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SINH, __pyx_t_16) < (0)) __PYX_ERR(5, 4631, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4660, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_20 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_SMA, 0, __pyx_mstate_global->__pyx_n_u_stream_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4658, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_20);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMA, __pyx_t_16) < (0)) __PYX_ERR(5, 4658, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_SQRT, 0, __pyx_mstate_global->__pyx_n_u_stream_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4687, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SQRT, __pyx_t_16) < (0)) __PYX_ERR(5, 4687, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4716, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4716, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n\n  __pyx_t_19 = PyTuple_Pack(2, __pyx_t_16, __pyx_t_20); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4714, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_STDDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4714, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, __pyx_t_20) < (0)) __PYX_ERR(5, 4714, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n\n  __pyx_t_20 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_20);\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4746, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_2 = PyTuple_Pack(5, __pyx_t_20, __pyx_t_19, __pyx_t_16, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4744, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_STOCH, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4744, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCH, __pyx_t_6) < (0)) __PYX_ERR(5, 4744, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4788, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n\n  __pyx_t_16 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4786, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_STOCHF, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4786, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, __pyx_t_3) < (0)) __PYX_ERR(5, 4786, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n\n  __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4828, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_3);\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4828, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4828, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4828, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_19 = PyTuple_Pack(4, __pyx_t_3, __pyx_t_16, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4826, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4826, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, __pyx_t_6) < (0)) __PYX_ERR(5, 4826, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_SUB, 0, __pyx_mstate_global->__pyx_n_u_stream_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4861, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUB, __pyx_t_6) < (0)) __PYX_ERR(5, 4861, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4894, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4892, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_SUM, 0, __pyx_mstate_global->__pyx_n_u_stream_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4892, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUM, __pyx_t_6) < (0)) __PYX_ERR(5, 4892, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4923, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4923, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_2 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4921, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_T3, 0, __pyx_mstate_global->__pyx_n_u_stream_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4921, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_T3, __pyx_t_19) < (0)) __PYX_ERR(5, 4921, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_TAN, 0, __pyx_mstate_global->__pyx_n_u_stream_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4951, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TAN, __pyx_t_19) < (0)) __PYX_ERR(5, 4951, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_TANH, 0, __pyx_mstate_global->__pyx_n_u_stream_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4978, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TANH, __pyx_t_19) < (0)) __PYX_ERR(5, 4978, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5007, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5005, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_TEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5005, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TEMA, __pyx_t_19) < (0)) __PYX_ERR(5, 5005, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_TRANGE, 0, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5034, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, __pyx_t_19) < (0)) __PYX_ERR(5, 5034, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5069, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5067, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_TRIMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5067, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, __pyx_t_19) < (0)) __PYX_ERR(5, 5067, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5098, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5096, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_TRIX, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5096, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIX, __pyx_t_19) < (0)) __PYX_ERR(5, 5096, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5127, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5125, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_TSF, 0, __pyx_mstate_global->__pyx_n_u_stream_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5125, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSF, __pyx_t_19) < (0)) __PYX_ERR(5, 5125, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_675stream_TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5154, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, __pyx_t_19) < (0)) __PYX_ERR(5, 5154, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5189, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n\n  __pyx_t_16 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5187, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_677stream_ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5187, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_16);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, __pyx_t_6) < (0)) __PYX_ERR(5, 5187, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n\n  __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5226, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5226, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_2 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_679stream_VAR, 0, __pyx_mstate_global->__pyx_n_u_stream_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5224, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VAR, __pyx_t_16) < (0)) __PYX_ERR(5, 5224, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_681stream_WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5254, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, __pyx_t_16) < (0)) __PYX_ERR(5, 5254, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5289, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5287, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_683stream_WILLR, 0, __pyx_mstate_global->__pyx_n_u_stream_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5287, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WILLR, __pyx_t_16) < (0)) __PYX_ERR(5, 5287, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5324, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n\n  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5322, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_685stream_WMA, 0, __pyx_mstate_global->__pyx_n_u_stream_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5322, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000\n  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16);\n  #endif\n  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2);\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WMA, __pyx_t_16) < (0)) __PYX_ERR(5, 5322, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n\n  __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 8, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_16);\n  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_2);\n  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_6);\n  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {\n    __pyx_t_19 = __pyx_t_6; __Pyx_INCREF(__pyx_t_19);\n    __pyx_t_18 = 0;\n    __pyx_t_33 = NULL;\n  } else {\n    __pyx_t_18 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 8, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_19);\n    __pyx_t_33 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_19); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 8, __pyx_L1_error)\n  }\n  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n  for (;;) {\n    if (likely(!__pyx_t_33)) {\n      if (likely(PyList_CheckExact(__pyx_t_19))) {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_19);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error)\n          #endif\n          if (__pyx_t_18 >= __pyx_temp) break;\n        }\n        __pyx_t_6 = __Pyx_PyList_GetItemRefFast(__pyx_t_19, __pyx_t_18, __Pyx_ReferenceSharing_OwnStrongReference);\n        ++__pyx_t_18;\n      } else {\n        {\n          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_19);\n          #if !CYTHON_ASSUME_SAFE_SIZE\n          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error)\n          #endif\n          if (__pyx_t_18 >= __pyx_temp) break;\n        }\n        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n        __pyx_t_6 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_18));\n        #else\n        __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_19, __pyx_t_18);\n        #endif\n        ++__pyx_t_18;\n      }\n      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error)\n    } else {\n      __pyx_t_6 = __pyx_t_33(__pyx_t_19);\n      if (unlikely(!__pyx_t_6)) {\n        PyObject* exc_type = PyErr_Occurred();\n        if (exc_type) {\n          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 8, __pyx_L1_error)\n          PyErr_Clear();\n        }\n        break;\n      }\n    }\n    __Pyx_GOTREF(__pyx_t_6);\n    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_6) < (0)) __PYX_ERR(0, 8, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_6);\n    __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_stream__s, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error)\n    __Pyx_GOTREF(__pyx_t_3);\n    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;\n    if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 8, __pyx_L1_error)\n    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;\n  }\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n  __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 8, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;\n  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_19) < (0)) __PYX_ERR(0, 8, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  __pyx_t_19 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_t_19);\n  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_19) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)\n  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;\n\n  /*--- Wrapped vars code ---*/\n\n  goto __pyx_L0;\n  __pyx_L1_error:;\n  __Pyx_XDECREF(__pyx_t_2);\n  __Pyx_XDECREF(__pyx_t_3);\n  __Pyx_XDECREF(__pyx_t_4);\n  __Pyx_XDECREF(__pyx_t_5);\n  __Pyx_XDECREF(__pyx_t_6);\n  __Pyx_XDECREF(__pyx_t_8);\n  __Pyx_XDECREF(__pyx_t_9);\n  __Pyx_XDECREF(__pyx_t_10);\n  __Pyx_XDECREF(__pyx_t_11);\n  __Pyx_XDECREF(__pyx_t_12);\n  __Pyx_XDECREF(__pyx_t_13);\n  __Pyx_XDECREF(__pyx_t_14);\n  __Pyx_XDECREF(__pyx_t_15);\n  __Pyx_XDECREF(__pyx_t_16);\n  __Pyx_XDECREF(__pyx_t_19);\n  __Pyx_XDECREF(__pyx_t_20);\n  __Pyx_XDECREF(__pyx_t_21);\n  if (__pyx_m) {\n    if (__pyx_mstate->__pyx_d && stringtab_initialized) {\n      __Pyx_AddTraceback(\"init talib._ta_lib\", __pyx_clineno, __pyx_lineno, __pyx_filename);\n    }\n    #if !CYTHON_USE_MODULE_STATE\n    Py_CLEAR(__pyx_m);\n    #else\n    Py_DECREF(__pyx_m);\n    if (pystate_addmodule_run) {\n      PyObject *tp, *value, *tb;\n      PyErr_Fetch(&tp, &value, &tb);\n      PyState_RemoveModule(&__pyx_moduledef);\n      PyErr_Restore(tp, value, tb);\n    }\n    #endif\n  } else if (!PyErr_Occurred()) {\n    PyErr_SetString(PyExc_ImportError, \"init talib._ta_lib\");\n  }\n  __pyx_L0:;\n  __Pyx_RefNannyFinishContext();\n  #if CYTHON_PEP489_MULTI_PHASE_INIT\n  return (__pyx_m != NULL) ? 0 : -1;\n  #else\n  return __pyx_m;\n  #endif\n}\n/* #### Code section: pystring_table ### */\n/* #### Code section: cached_builtins ### */\n\nstatic int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 60, __pyx_L1_error)\n  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 82, __pyx_L1_error)\n  __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 130, __pyx_L1_error)\n  __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_min); if (!__pyx_builtin_min) __PYX_ERR(2, 598, __pyx_L1_error)\n  __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_max); if (!__pyx_builtin_max) __PYX_ERR(2, 599, __pyx_L1_error)\n\n  /* Cached unbound methods */\n  __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_keys.method_name = &__pyx_mstate->__pyx_n_u_keys;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;\n  __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;\n  return 0;\n  __pyx_L1_error:;\n  return -1;\n}\n/* #### Code section: cached_constants ### */\n\nstatic int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {\n  __Pyx_RefNannyDeclarations\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  __Pyx_RefNannySetupContext(\"__Pyx_InitCachedConstants\", 0);\n\n  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_real, __pyx_mstate_global->__pyx_n_u_price); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(2, 679, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);\n\n  __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);\n  __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(1, 60, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);\n\n  __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);\n  __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(1, 112, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]);\n\n  __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]);\n  __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(1, 119, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]);\n\n  __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]);\n  __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(2, 88, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]);\n\n  __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(2, 286, __pyx_L1_error)\n  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]);\n  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]);\n  #if CYTHON_IMMORTAL_CONSTANTS\n  {\n    PyObject **table = __pyx_mstate->__pyx_tuple;\n    for (Py_ssize_t i=0; i<10; ++i) {\n      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n      #if PY_VERSION_HEX < 0x030E0000\n      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)\n      #else\n      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))\n      #endif\n      {\n        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);\n      }\n      #else\n      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);\n      #endif\n    }\n  }\n  #endif\n  __Pyx_RefNannyFinishContext();\n  return 0;\n  __pyx_L1_error:;\n  __Pyx_RefNannyFinishContext();\n  return -1;\n}\n/* #### Code section: init_constants ### */\n\nstatic int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {\n  CYTHON_UNUSED_VAR(__pyx_mstate);\n  {\n    const struct { const unsigned int length: 11; } index[] = {{2},{1},{31},{26},{28},{57},{11},{11},{33},{26},{38},{31},{36},{55},{7},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{4},{32},{37},{179},{50},{54},{57},{22},{22},{18},{23},{21},{26},{8},{11},{14},{21},{132},{1467},{35},{25},{33},{52},{13},{30},{30},{31},{23},{1},{1},{2},{1},{1},{1},{0},{2},{2},{1},{1},{4},{1},{1},{8},{13},{29},{11},{33},{6},{32},{33},{30},{14},{48},{35},{39},{34},{2},{4},{6},{9},{19},{17},{15},{17},{17},{10},{11},{17},{12},{12},{9},{15},{8},{4},{2},{3},{5},{3},{4},{3},{3},{5},{8},{13},{4},{4},{3},{6},{8},{17},{6},{4},{3},{8},{8},{9},{12},{3},{9},{14},{10},{14},{11},{16},{17},{16},{15},{11},{12},{18},{19},{16},{17},{7},{11},{16},{12},{18},{14},{19},{17},{9},{13},{9},{14},{11},{10},{13},{15},{18},{9},{17},{10},{18},{15},{17},{11},{11},{14},{10},{18},{14},{9},{11},{14},{19},{18},{15},{12},{14},{17},{16},{9},{12},{12},{10},{15},{18},{19},{4},{3},{6},{3},{4},{17},{4},{3},{2},{9},{3},{3},{3},{5},{5},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{24},{32},{30},{35},{16},{20},{15},{18},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{11},{10},{9},{7},{12},{12},{7},{9},{3},{20},{29},{4},{9},{15},{19},{15},{2},{5},{4},{2},{4},{7},{7},{4},{4},{3},{8},{7},{19},{16},{8},{3},{8},{8},{3},{8},{6},{11},{8},{8},{3},{4},{4},{4},{4},{3},{11},{18},{15},{7},{7},{18},{15},{3},{20},{3},{4},{4},{7},{3},{9},{8},{3},{6},{3},{4},{3},{4},{6},{5},{6},{8},{3},{3},{6},{10},{11},{14},{15},{7},{2},{3},{4},{11},{7},{5},{6},{8},{6},{7},{6},{8},{11},{7},{7},{6},{9},{11},{9},{7},{6},{6},{12},{17},{13},{17},{14},{19},{20},{19},{18},{14},{15},{21},{22},{19},{20},{10},{14},{19},{15},{21},{17},{22},{20},{12},{16},{12},{17},{14},{13},{16},{18},{21},{12},{20},{13},{21},{18},{20},{14},{14},{17},{13},{21},{17},{12},{14},{17},{22},{21},{18},{15},{17},{20},{19},{12},{15},{15},{13},{18},{21},{22},{7},{6},{9},{6},{7},{7},{6},{5},{6},{6},{8},{21},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{14},{13},{12},{10},{15},{15},{6},{14},{13},{7},{12},{18},{22},{18},{5},{8},{5},{7},{10},{10},{7},{7},{6},{11},{11},{6},{11},{11},{6},{11},{9},{14},{11},{11},{6},{7},{7},{6},{15},{10},{10},{6},{19},{18},{6},{7},{7},{10},{6},{31},{6},{9},{6},{7},{6},{7},{9},{8},{9},{11},{6},{6},{20},{19},{26},{23},{20},{11},{5},{6},{7},{7},{9},{8},{7},{6},{11},{9},{6},{11},{8},{6},{4},{6},{5},{4},{3},{8},{6},{3},{8},{5},{3},{12},{20},{21},{16},{19},{20},{17},{7},{6},{3},{4},{5},{6},{18},{9},{1},{6},{9},{8},{15},{23},{17},{18},{5},{5},{10},{11},{12},{7},{4},{1},{6},{13},{8},{12},{7},{4},{13},{5},{6},{9},{6},{12},{12},{12},{9},{10},{10},{4},{5},{17},{8},{9},{9},{9},{11},{14},{13},{9},{22},{11},{16},{15},{21},{14},{11},{5},{6},{4},{4},{9},{6},{1},{2},{3},{12},{2},{5},{4},{8},{12},{10},{11},{24},{26},{7},{13},{8},{5},{3},{4},{6},{6},{5},{7},{3},{8},{7},{3},{8},{5},{8},{4},{6},{3},{7},{7},{9},{13},{3},{7},{9},{7},{12},{10},{15},{3},{1},{4},{8},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{9},{5},{9},{16},{10},{11},{3},{12},{10},{9},{7},{8},{8},{10},{10},{15},{11},{7},{11},{13},{7},{6},{9},{14},{6},{9},{14},{12},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{5},{10},{10},{6},{11},{6},{7},{12},{6},{3},{11},{5},{6},{6},{12},{24},{6},{8},{12},{9},{4},{5},{10},{5},{10},{9},{7},{8},{7},{3},{7},{8},{3},{1},{6},{4},{6},{17},{16},{15},{12},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{7},{9},{15},{11},{9},{10},{12},{10},{11},{10},{12},{15},{11},{11},{10},{13},{15},{13},{11},{10},{10},{16},{21},{17},{21},{18},{23},{24},{23},{22},{18},{19},{25},{26},{23},{24},{14},{18},{23},{19},{25},{21},{26},{24},{16},{20},{16},{21},{18},{17},{20},{22},{25},{16},{24},{17},{25},{22},{24},{18},{18},{21},{17},{25},{21},{16},{18},{21},{26},{25},{22},{19},{21},{24},{23},{16},{19},{19},{17},{22},{25},{26},{11},{10},{13},{10},{11},{11},{10},{9},{10},{10},{12},{18},{17},{16},{14},{19},{19},{10},{11},{16},{22},{26},{22},{9},{12},{9},{11},{14},{14},{11},{11},{10},{15},{15},{10},{15},{15},{10},{15},{13},{18},{15},{15},{10},{11},{11},{10},{14},{14},{10},{10},{11},{11},{14},{10},{10},{13},{10},{11},{10},{11},{13},{12},{13},{15},{10},{10},{9},{10},{11},{11},{13},{12},{11},{10},{15},{13},{10},{15},{12},{10},{3},{17},{17},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{14},{5},{13},{8},{9},{9},{10},{11},{11},{11},{8},{5},{4},{11},{6},{11},{5},{5},{11},{6},{7},{7},{6},{11},{101},{101},{170},{168},{148},{101},{106},{15},{121},{173},{173},{22},{115},{135},{174},{166},{115},{167},{261},{79},{497},{261},{241},{363},{70},{55},{64},{285},{143},{56},{48},{51},{324},{104},{69},{18},{214},{209},{258},{174},{44},{7},{13},{13},{17},{17},{21},{13},{13},{15},{344},{209},{209},{117},{117},{117},{124},{209},{237},{328},{175},{209},{201},{328},{138},{328},{143},{183},{118},{222},{133},{155},{202},{240},{134},{134},{134},{202},{157},{134},{207},{193},{193},{116},{115},{207},{36},{138},{96},{78},{121},{80},{19},{27},{34},{341},{187},{286},{304},{217},{254},{255},{18},{160},{223},{164},{193},{115},{22},{116},{195},{181},{151},{151},{97},{117},{126},{101},{97},{100},{94},{108},{95},{101},{116},{96},{93},{100},{93},{96},{184},{184},{184},{182},{184},{188},{182},{177},{183},{193},{183},{193},{183},{193},{193},{359},{259},{255},{255},{243},{247},{255},{297},{190},{167},{168},{200},{138},{163},{151},{151},{271},{153},{152},{138},{163},{138},{163},{212},{163},{195},{137},{163},{266},{298},{307},{312},{316},{297},{308},{318},{298},{302},{308},{306},{306},{312},{312},{308},{164},{246},{165},{197},{218},{165},{209},{165},{28},{347},{174},{287},{370},{336},{310},{253},{330}};\n    #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (12652 bytes) */\nconst char* const cstring = \"BZh91AY&SY\\365\\014\\231o\\000\\035>\\177\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\377\\300@@@@@@@@@@@@\\000@\\000`9\\335\\335\\363\\276\\357np\\000>>{8A\\321\\336\\367y\\234\\243\\354\\001\\364\\017\\235\\217\\235H\\327\\311\\203\\344\\356\\366\\372\\316\\303\\337ww\\337{\\357\\r}\\222v\\347\\006K-+=\\332w\\333\\357z\\353_u\\215;\\316\\000\\014\\032\\017\\274k\\304\\325o\\2716\\355\\263v\\364\\017\\\\\\257u\\337{\\036\\273\\274{\\314\\2265\\230:r\\333\\351\\353\\333\\333\\321\\242y\\221g\\200;\\354\\r\\3631\\327X\\275\\367n\\366\\340\\n(\\004\\000\\000+\\260\\342\\3132B\\007\\330\\016^\\004\\222\\020D\\023\\021\\246\\023&\\r\\006&\\206\\225=\\350\\324\\314\\321\\0312\\000&\\246\\201\\2655&\\3152\\246\\217b&S\\364Bh\\003OP~\\250$\\210\\001\\001\\023Djf\\200M\\031\\006\\246\\232\\233$\\361\\275UO\\310\\321\\032\\236 @\\3650=S\\322cCF\\243\\006\\201\\2416\\236\\251\\355Q\\352\\006\\230B\\224\\311S\\312\\0324`\\2004\\3100\\020\\323\\010\\001\\352\\000\\310\\001\\246\\203C@\\003\\004\\000\\r\\036\\240\\002M(\\202 M\\006\\204\\332\\010\\231=OF\\223\\024\\374\\232ML\\2312\\r\\003M4\\0004h\\000\\r\\001\\240h\\000\\003A\\024B\\022$\\215\\032z'\\244\\364\\323\\324\\362\\032\\241\\275MO\\322l\\247\\250\\237\\252z'\\222=L\\017\\014M5B\\032z\\214a\\020\\321\\351=M\\243MOH=4j\\002%\\\"\\020\\030h\\021\\2651\\032hh\\231\\006E\\036SM2&\\006\\203Sj\\r\\r\\000\\006\\200\\003@\\001\\243OH\\017\\271\\000\\204\\201\\267'\\224\\363!\\350|\\376\\375\\216q\\360\\344\\t\\201\\034S\\337\\326\\230s\\243y\\357\\020\\360\\\"\\242@\\316+%\\002k\\301\\350\\t]X\\024\\013X\\301\\005\\252\\t\\200yV\\225\\214\\206\\263F\\200\\341\\324,\\035\\274\\301\\330d\\370\\351Pe(\\310^\\357\\260\\005\\200\\016h\\201\\\"\\203 $ \\264\\200\\322\\002\\224\\212\\205\\\"\\203\\\"$\\200\\022\\000\\251F\\\"\\254\\200\\243$\\200\\260\\223\\354[\\000\\\" \\022\\240\\005\\031$\\026\\021D\\\"\\005B\\220(5{\\007l\\216\\317\\367O\\227\\374\\021\\333\\265\\276n\\345\\345\\335\\323\\350&\\237\\317\\272B*r\\301\\376D\\3623(\\327,\\3034U\\037\\374\\357!\\251V\\\"\\022x[&\\275-\\000x+\\23719ft\\006,\\3351\\305\\300Mr\\262z8\\261c=\\036\\271\\242\\177\\270\\004N\\360\\277R\\325\\357\\237X\\237b]qK\\276\\274-\\005\\226\\2608\\0210D\\312E\\256a\\262\\004\\014\\244&,1\\203FfB2\\020d\\r\\306\\030B\\032\\271\\004\\327\\032WI\\234+\\271t\\3278\\334\\r\\204\\200L\\244@\\\\\\323\\207WQ\\3719M~\\310.\\252\\025\\257\\355!|\\362\\227_(~\\342\"\"\\260\\301\\332\\323\\367K\\260\\277x\\016\\2750\\307\\314\\213\\260\\017\\267w\\217\\375\\221\\202\\216\\227\\317\\336\\372?\\356\\270\\024u\\332\\360\\377\\002\\342\\2469\\206\\031\\215x\\177\\010\\272\\014M\\2402b6\\355\\177\\020\\271\\030\\261\\007\\030;_\\201teL\\265i#\\037\\306p\\211\\224\\026\\237\\310p5\\311\\253\\224\\216\\337\\362\\204\\370\\231jg\\201\\266(\\253\\370QE\\036:S5\\245\\003\\371\\205\\306cL\\256Dd\\320g_\\316\\007\\035q\\205\\261#\\361\\013\\027\\226-\\241\\\"k\\377\\013\\206-lm\\264\\250u\\177\\345T\\231C'\\204O\\350E\\302ms\\204vh\\263\\037\\322(\\027'\\275\\t8\\322o\\352\\013G\\267\\321\\267\\031\\243\\372\\314\\2437\\355r\\241\\273\\323\\373\\026\\321\\3508\\305\\037\\215KX\\310\\343\\300\\234\\241\\375\\253YC\\201\\301\\2110\\303\\177r\\201\\252\\206\\306\\322?\\275\\017\\233\\021:\\r\\330\\221\\325\\376\\002\\216l\\315.\\216\\003H9\\2138\\307\\257z\\362\\241\\376(\\211\\003\\217\\002=\\014~HGq\\240\\217\\014!\\035O\\362\\321\\361\\311g\\351\\246n\\320\\032\\023?\\316\\014\\314\\314q\\362\\177\\246\\345q\\000\\325\\365\\351\\364q*\\3737\\005v\\333\\377GL{\\177\\353\\313\\255\\214V+\\362\\256Zuo\\025\\376\\307\\\"\\246\\320\\031\\217\\235p\\351\\322x\\221\\377\\265\\311\\215\\371k\\266\\032_Q\\034\\270\\233\\351\\010\\374!\\306\\334\\240?\\346Y\\333x}\\032\\307\\247F\\213\\343\\337.Kh\\357\\221>}\\246M]\\306\\255\\3535\\351Y\\260\\307S\\036\\224N\\271\\3632\\350\\347l\\370s\\037\\234\\333I\\356\\3737L[\\230S\\236\\032<\\271\\360\\343\\265>\\251\\233V\\273\\350sS\\347\\256\\324\\231\\325\\023g_8RE\\341^\\000\\274\\202\\360_K\\215bV\\253\\275z\\363\\351\\276\\036\\r\\336-^\\031|\\004\\351_\\247v,+\\225u%\\313\\271B\\326\\345\\273Z:\\2706\\356qO\\311\\273\\217\\217k\\006\\265\\254Ku\\2633Iv\\\"\\342\\320\\226\\356\\325\\233\\327s.O\\325\\274^\\275O\\037\\033\\212<\\272y4\\262\\250`\\345\\361e\\241,\\224\\221\\260%\\262\\220d\\211\\031\\000.\\362\\246\\305\\r\\252\\033\\0048U\\354\\007\\271{\\021\\353\\020\\322\\241\\322\\211\\336\\001\\350G\\320\\247\\202=\\312\\032\\3047\\003\\326/Z\\026\\203\\324\\001\\264\\036H\\206\\242\\006\\232:jyBt\\227\\244'I^\\212\\276X\\364T\\351\\t\\256\\202\\240\\213\\3026\\004l\\010\\330\\003m\\025R\\340\\005Y%\\270#\\310+\\241p/*\\351^A\\276\\257\\n\\310\\257\\nd\\026lX\\261\\265\\266\\375\\357/\\227\\313\\036\\315V)a_\\002\\322<\\035[\\207\\036s\\341F\\237\\263\\314\\253W\\231n'{\\237Kt\\345\\244t\\351\\032\\331\\306=0c\\315)SV\\347\\225\\365\\233\"\"\\363\\306m\\267=s\\277\\250\\360\\306\\374\\316\\021\\310\\177O\\r\\337\\323\\031c>\\310C\\342\\347-\\345\\247x\\215j\\376\\235\\261\\027\\3477\\327\\3227\\213L\\366\\247\\2447~\\032\\361\\364\\256\\005_\\322qQ\\336\\022\\365C\\234\\366\\247\\2148\\353\\314\\336\\274\\315&s4\\2373B\\274\\326D\\272\\271\\23664\\217\\254\\264\\347\\245\\271\\346[\\177\\212{\\374\\\\/\\317\\206\\025\\215\\231\\366'X&\\357\\331\\300\\032m\\303\\002bi\\361\\311g\\303}\\005\\364\\204_/\\350\\356d\\326\\243\\345\\362\\315\\213_7g*K~X\\264\\251X\\256\\367\\276\\216\\2058R\\245KV\\226\\216~\\247\\177O2\\234\\300\\261Dd \\262)\\221\\264\\215\\321i\\006\\220h\\206z\\230Y\\311x\\302\\302[\\302\\231\\023\\\"dWS)\\202\\2111eL-\\224m)\\2210\\033)l\\243d\\r\\2006\\026\\302\\330\\r\\205P5\\305M\\024\\212U\\302\\311\\274\\266\\354X&+Ln-\\300\\334+\\371f\\264[\\336\\255\\334\\221\\361\\017\\212f\\022BQ\\210\\202\\020\\212\\242\\310\\242\\244\\200\\002\\222\\004 Fa\\200@\\230\\370\\307fi\\033z\\325\\235\\375\\375\\373q\\357\\357\\317\\232j\\363O\\255Z\\315\\235\\335\\275\\275\\335\\374}\\275\\357%\\372\\271^M\\275\\275\\2716\\365\\370\\220\\027Qu\\034\\310\\346G0\\034\\334\\230YW\\363\\355a\\323\\327*k\\346\\024J:\\345*\\224\\217\\031\\207R\\245*U5\\265jT\\312\\247R\\246\\251R\\235J\\2325*h\\324\\330\\265\\027H\\204#S\\342\\252\\2052\\250s^k\\347o\\006\\033H\\336\\336\\336^;\\010l\\030&\\210h\\205\\355\\345\\034C\\265\\2640X,Y\\024R\\n\\004Y\\005\\204U\\213$\\214\\310\\375\\372\\241eT!\\025\\014\\214\\222\\310\\324H\\262@\\331f\\200\\025\\202\\302\\235,\\240n\\230`~\\275\\337\\352\\315wE\\336\\243\\320\\2503\\342\\261\\r\\001\\355&u\\016ige \\021\\341\\315\\230\\344\\370\\026\\333\\250 }\\371\\010\\305 \\221\\200-\\333\\2724)\\314\\032/7\\203@\\350^$\\r0\\026FAN4\\245\\017\\301|\\005\\r\\3417\\204\\2202Yw\\\\.\\024\\354C\\027C\\025\\002\\312\\310@Pd\\010\\003m\\215\\266'2cC\\032\\254!\\nI!Hd\\306\\367Z\\326HB\\230N\\033H~\\231\\222Z\\2101F\\\"\\264\\t#\\254\\326\\342L\\364\\364\\001\\024\\021\\t\\270Z^\\216\\020\\324\\327\\367\\354\\263x\\301X\\226I!]\\307MB\\2113\\010\\ro\\216\\rt\\213\\227\\262\\021\\013\\241\\304@a\\\"\\210\\005`@m$c\\000\\212Nc\\244&\\3048\\220\\3438\\303\\265\\003\\262m\\303\\201\\024RN(M\\316\\002\\303f\\212\\212:\\361\\230\\016!\\300AT\\212@\\306\\030\\2048\\230\\213\\254\\321\\325\\305m,T\\021\\252\\030\\006&\\022\\271Q\\252\\273%$\\250\\255\\315B\\367\\362\\r\\352\\n\\032\\0336A\\374\\233\\01066\\213\\214,\\010\"\"\\005ah\\006H\\327D\\032\\231\\252\\201m\\022\\313X\\264FL\\226\\254\\014\\320\\331g]cM\\304pd`M\\020\\262i\\014\\343\\262e\\272\\020+#t\\033\\210\\335\\033\\202\\334\\260`\\006\\004\\204_\\360\\341<\\007\\r\\030\\331,\\326b\\0038\\237\\212\\351$\\267*\\002\\264\\254\\t\\005\\200\\260\\204X\\324F\\251\\032\\233d\\222\\306\\001\\261\\233\\276\\256\\346`,\\262\\275BH\\225\\302\\351^D\\254A\\246\\220Y%d\\262HFH0X\\376\\214[ld6B\\022\\311\\006F0\\006\\345\\312\\227\\263XAD\\204BBH?\\247\\023w\\232\\003u\\221\\220\\032\\337 \\331ab\\353\\030\\004[DlX+\\254\\030\\230\\2643\\230L:\\003a\\262+\\003\\245Y!n\\341O\\276\\204/\\304\\022\\003)\\375\\360\\020\\344r\\001\\352@\\237\\027&\\246\\256\\255\\372\\246\\256h\\275\\213\\212\\314\\321\\310R\\272\\030Sn\\372\\021\\203\\363\\376\\177\\317O\\245\\355\\177\\326\\341\\374\\320\\317\\3647=\\\"1\\233<8kL0\\353\\341\\221\\247\\340\\215\\212\\304\\367\\236vf\\202\\214T\\t\\2509\\014R\\205\\376\\257\\3032\\014\\025\\326\\364\\367\\261<\\2324\\206K\\201B;_\\337\\207U\\231e\\243\\301\\241\\370\\\\\\035\\227q\\311\\311i\\363E\\367E\\332\\277\\350Pq\\264}\\257\\010F\\254\\366\\327\\362\\306\\215\\261\\3266\\371\\326\\315\\010=\\273\\317\\367\\245\\027y\\351H?Y:O\\020\\177\\212r\\214k\\255\\024 J\\031m\\215K\\303&\\350\\215\\247\\373\\327\\301\\311\\214c\\226\\235\\223\\241L4\\264\\211ll\\324\\242\\332\\033Z$\\371\\273\\220\\016\\313\\325\\244n\\367\\204\\232\\017\\264s\\312d'{E\\362kBX\\n\\341A\\337\\t\\317{\\236\\351\\314}qC\\026J\\\"\\251\\261\\270\\342\\251\\3756\\226\\307\\220\\030\\335\\332\\252\\017HI\\023\\313\\000K\\022#\\024\\225\\321\\272\\247\\023\\242\\267\\\"Nf`\\212\\016\\002\\304\\006\\224$\\006\\034.:\\2762\\336XQe\\210@\\2100F\\233zJv\\306\\001\\\\\\253\\250T\\222\\004PE\\025\\212+\\036S\\231\\256I\\006_\\217\\361\\207G\\244\\324\\\"9\\034\\313sb\\310\\262J\\205Csqn\\205d\\226\\342\\335\\006\\346<\\337\\003\\235\\347\\366>\\326\\333 \\027\\366\\213\\257\\247p\\207\\000\\340p8\\177\\257\\330B\\003l\\002\\352\\257\\367\\212\\356\\035XXX\\00389\\317\\370\\356\\3439\\241\\r>Y\\220\\023\\026\\034D\\034!\\365~\\243\\211\\304a\\376\\314\\252\\032\\257\\356&&\\\"S\\263\\302e\\256WN\\351\\217\\036\\024\\261l\\016\\332\\271\\265\\325\\220r%\\241\\225\\264\\256o\\367\\261k0\\361\\264\\373\\355\\220n7\\253\\345\\356\\336\\373\\017\\302&=.p\\377\\240u\\330G\\237\\305[A-\\0038\\3155t\\rF\\265\\326iC\\310\\344:\\304y=oyC\\253\\204\\371\\233C\\264\\271v\\023\\030\\0021\\266gN\"\"\\017\\363\\005\\210#X\\300\\377,P\\3768\\250\\027\\306\\216jl\\346\\366\\323\\331\\271\\014\\213\\231&K\\025\\r\\035\\014\\200\\310\\002\\277\\207<G\\205\\177[\\241e\\014\\003w\\306\\302w\\360\\347l\\237V5\\323\\252\\342\\313m?\\007a\\325@\\314;sf\\2571\\366\\016\\225\\346\\366\\303\\323~}|\\371\\236R\\207\\311\\235\\336+/e\\t$N\\003\\372\\016\\252\\206\\225\\302\\207)(~\\255\\372\\276\\314J\\313\\273m\\312z\\310\\032\\020\\346\\362\\266\\263\\246\\303\\307\\2775Yp\\007\\325\\366o\\207\\032\\315v\\232\\216\\267Q\\010\\365\\376G\\374`H_qJ\\\\\\221U\\267\\355\\264a\\246a\\242\\367\\030_\\230\\323\\226\\255\\372#f\\377\\316\\265\\372\\272\\354\\336X\\000\\217Q\\222\\003\\\\Au\\322\\211\\001\\242\\225!\\355\\307\\211\\361\\307\\336\\034\\340w\\206\\223\\204\\337\\271\\305\\302T\\200\\261\\022r\\310\\002\\222\\206M-\\334\\3166\\315\\326\\351\\256\\r\\351\\266\\373V\\354`\\326\\3231M1\\253\\211\\337\\233\\231\\360\\223\\250\\376\\017}W\\353{\\275\\276^`\\207<9\\200?\\030}\\254\\247<2\\343l\\033\\034\\247E\\274\\371\\021\\311$\\221\\370X\\375B3&\\214\\246W\\233\\345\\260\\3070\\242Z\\377\\256\\036o7\\020\\034O\\020\\226\\215\\252p\\277\\217^\\20448\\001]e\\357s\\350\\310\\212QJ8\\366\\370\\340\\277\\354\\364\\027W\\013\\244\\002\\270m\\205\\346\\270\\215Aat^\\342\\272\\004\\213t\\376l\\037\\232\\324\\320\\325\\322\\262\\001\\032\\244\\\\\\251\\2424V?\\373\\355j\\213\\227\\013\\240\\271\\303l\\217\\325\\302\\351<\\2766FH20\\000\\212\\220\\027\\347\\351p@,\\322\\217\\356\\215\\305`^\\257e\\013\\371J\\376\\306\\302j\\207\\377\\254+\\037N\\347\\327\\353\\377\\215\\313\\005k\\277\\036\\336\\336O\\222\\377R\\246\\205\\005\\323\\326|\\242\\003\\350\\004\\337\\374o\\301\\251k\\257\\326\\222I\\274\\351\\253\\021\\014C\\020\\310\\230\\004\\244\\007_\\373s\\266\\030\\375\\243\\320\\351\\236\\342\\025\\263\\005\\325#\\333\\253B\\324\\226\\217o\\334\\240b\\\"\\354\\017\\322\\336\\363\\336\\320\\325\\304\\321\\227\\375%\\375\\267\\375\\225\\277\\272k\\016\\303|\\321\\246\\031\\230f\\204\\000\\374\\202eH\\227_)-PpTD\\026\\025QQ\\206\\033\\355\\245\\274GGr\\364\\023\\niYt/\\361\\256\\214\\216 \\2455\\201\\222\\364^b[&/$\\273\\026i\\244\\342\\03441\\231'<r\\271W\\023\\225\\262\\312\\230K\\207\\014/6<-\\001\\273vI\\207W\\022 7\\0303\\2641}\\263\\232\\354q\\240\\215\\006\\271\\252\\302`\\327KY\\033\\206\\322\\027-P\\252\\276\\251e'19\\231\\205\\025I\\255$7Gn\\032@!\\230C\\\\M,\\316i\\266\\231\\301\\377H`\\214aZ\\241\\r1VA\\304bx3\"\"\\274\\273vR\\265\\214\\033\\2268\\032\\353\\276u\\271.3\\266\\220\\237kv\\371\\344\\207\\236{\\244\\020X-\\201\\356\\224L\\2341EP\\324Lh\\037R\\247M\\231\\232h\\031\\344\\212\\223\\312y\\313EO\\201\\246\\277\\250\\245LH\\242\\250\\231\\035\\354\\343\\223oH\\330\\375;\\177g\\323\\036\\024\\351V\\241\\247@J\\200PB\\3234\\3221+\\234\\006\\347\\264\\352W\\255\\354X4\\036\\312BJM\\232\\036\\267\\231\\345\\350(5\\320\\271\\t\\017a\\024S\\340L'\\374'\\241=\\264\\302xS\\332M\\023\\344\\361\\241R\\247\\264\\230E9\\023)\\204\\365b\\207\\\"h!\\310\\232&St\\3357NT\\367\\223\\212qNT\\364\\247*n\\212qN)\\312\\234\\250\\246\\211\\301>Rh\\234\\311\\312\\231M\\323dSt\\354Os\\204\\335\\232h`\\326$\\236\\334\\370\\\"\\025[\\224S\\017l\\306R\\005\\007\\200\\356\\347\\025\\252\\335=\\306Srp\\304\\01034\\026\\350Yq9\\261y\\222L\\31135tt\\t\\217\\266G\\207\\263Z\\225\\331\\342\\3639\\215K\\243[[X>\\003\\304\\330\\211\\322m\\031\\t\\t\\010\\033j\\371\\370Lv\\362\\350k-.5b\\233\\032\\307`\\362Me<&Rm\\336\\301\\211\\277\\030\\330i\\353\\345W\\023\\220\\017$e4\\353\\312\\302\\205U\\203\\014\\022\\022\\025XB\\0310\\t\\016\\351\\221\\037\\035/\\014\\014\\300\\220d\\215\\267\\225\\305:\\347D\\222NT\\034\\201\\004\\020E\\344d\\362\\225i\\253\\260`3x\\347D\\320\\031U\\336\\260b\\374\\376|\\207=gN\\305\\305\\305f\\305\\361\\225\\205X\\254*\\300{>\\337\\223x\\372>\\263\\202\\305M\\257R2\\004\\n$O\\364\\303\\344P\\352|\\235\\347P0\\034_65u)`>\\232\\313\\252\\313/\\021\\331\\177#\\211h\\350\\203K\\025\\321ko\\265>b\\322\\3647\\257\\201\\335\\352h\\246(\\330Z\\212\\213\\032,\\263WR\\302eM\\006\\202\\365\\224\\325\\024\\003\\n*S\\030(\\3163N\\361TS!4\\311\\3458j^\\2725\\236\\3230\\304\\263\\275L\\330\\276\\005\\010Nb`\\035\\221\\340\\320p\\325\\231\\231\\224\\344\\324=\\217\\026\\030%=[g\\333Sf%\\255\\252d\\305\\374lw\\005\\342\\017\\007gx1\\335\\001wQ\\3303&2B2Q<\\364\\016\\360\\317\\211\\227\\231\\312\\372\\241\\221\\205\\247\\211\\234\\250<\\375\\246^\\306?}v\\217\\216\\326\\361+\\215I\\3729~\\334\\332#\\363\\335\\314@>o\\235\\325\\031F\\363\\003\\261/A\\343\\236\\361=\\036A\\350\\222\\036(y\\021U\\212\\301\\nO!\\201iN\\374\\347\\0377C\\rk\\330\\301\\353jh\\227\\032=\\305HU\\025\\330\\306\\353y\\307R\\025\\260.D6Q\\014\\267\\006\\036T5\\335\\013\\236\\321\\335\\313\\313\\344h\\375\\037\\2078'#\\312#\\026\\\")C\\27704\\370\\357s\\334U\\354\\330\\037,\\237*{\\347\\275Y\\230\\014\\373\\302d\\rD34&\\223\\023\\252\\264\\270\\305}\"\"\\255N\\t\\335O\\226\\225$:\\036o\\327\\325\\321w\\367\\256\\037\\262`/\\340\\301I\\251\\325\\251MF\\2457?C\\264\\375<\\206\\245\\ra\\316\\302\\020J\\006\\266\\2059\\354u\\004l\\366\\276\\311\\251\\003\\241\\371\\243u\\251\\270\\362\\001\\203\\002H\\312j:m\\233\\332;.\\221VGKE\\202\\217\\255\\207'J<(=/)\\024^rL\\260\\026/<\\335\\354\\364\\354Fs\\316\\364\\336vf\\206\\210\\243\\275k\\010\\250\\3061\\232\\232\\302d\\256\\270(\\007\\310\\244\\2114\\003\\320\\240'D\\324`\\333\\252\\233\\346\\243\\025\\3113&d\\324\\206QUi>\\225&l+(M1!\\306k*m{<Y\\033\\365>\\036\\332Pi\\353\\344\\237\\206\\241\\262\\307\\206q\\322\\376\\002\\303\\210\\356;\\273\\236\\343\\2657?\\001\\324\\241\\326\\273\\241\\\"\\024\\r\\305\\032\\024\\335\\357\\364\\\"v\\236&\\007\\001\\363\\r\\360\\016\\0048H\\205\\036\\022\\222\\234=\\203\\217Y\\354m\\r\\014xj\\t$\\351\\037\\240\\3265\\216.\\252\\204\\272\\350\\240c\\024K\\016T='&\\274h\\345\\014\\320J\\016d\\2453i\\033\\354\\034l\\007CF\\216\\246\\226\\227\\032\\306\\250\\345\\217\\204\\033\\213\\020A\\314\\363\\207\\322\\230\\225#\\337\\224\\222o<\\026R\\\\\\246\\351\\3563\\027Jy\\342c\\026\\3313\\254\\244c\\022$\\344\\224,\\223l\\234\\323\\223\\301\\202\\223I\\31756\\217\\023[F\\r\\306\\000\\316\\036\\000\\251\\276\\021\\214\\037\\001\\216\\373\\307x\\367\\365\\036\\251\\364\\217\\\\\\363\\376\\013\\327\\357\\364\\235\\323\\264vn\\326\\274\\350E\\350JB\\207A\\217-\\246\\250U\\016b\\365z3\\207\\257\\322\\252\\366\\225|[\\232\\352\\343\\035\\275&\\314\\3064\\324\\337\\307U\\360\\265f\\303\\306\\325)\\026\\274-/\\024\\327\\262/j\\27611Y\\016\\025sf*\\263s&\\031\\2123\\2616Tq\\231\\205\\275<T\\202c*\\033\\212G\\212\\224fy\\314\\252\\217\\201\\004\\352\\353\\327<\\301\\327\\337\\204\\360\\023\\312\\305\\032\\035f\\022\\235w\\217\\237\\236\\366\\272:\\262\\\\\\272V\\215\\361\\205\\325&A\\200\\312\\013\\230n\\r\\t\\005\\214F\\260(\\261\\261\\030\\0231\\214a\\205V]UUWI\\254\\314{\\224\\r\\225Y\\245\\233\\223\\305\\231\\016\\031\\264\\256\\232\\344\\306\\322\\207\\010\\300=m\\261\\3348\\363Q%\\264\\271{|\\244\\341\\341\\254\\253\\342\\316\\177nA\\014\\252\\021r\\024\\201L\\246\\274>\\270g\\201\\315:\\372$+C\\243\\324KWSI\\274\\360\\302\\t\\250z\\361\\016\\014\\336\\254\\325\\343\\325\\336VS]\\317\\n\\311\\005\\002\\225w\\320QX^{A;\\263Fy\\346,\\323\\351e\\\"\\021\\321\\233K\\014\\354\\360XWN\\026\\273YaTT^r\\212\\270[\\0364\\304\\024rF\\t\\304\\242\\237\\342\\257D,\\303\\274\\323g\\255\\002\\335\\267J\"\"\\264\\rs\\373\\277=\\004\\203H\\025&\\002Pv\\214\\333\\321\\3306\\215\\036\\207\\234\\257\\310\\247.\\246\\242\\257<\\251\\336t\\275n\\300\\251\\365[\\263\\031(\\035\\3300\\315\\347\\205\\0335\\337\\275Fb\\230f\\234bF9Y]T\\314}3\\236\\027\\244\\353\\222o#\\277|\\3461\\204\\037\\235I5_/\\337\\277\\177|\\316\\211\\240SD\\242hI\\243\\225\\304\\032\\030\\201\\247\\335\\022\\022\\036\\237\\233U@\\200\\373V\\202V\\374\\346za\\3515\\222I\\234\\366\\374~\\326\\234\\000\\207\\003f)\\024R\\204\\021\\312P\\001\\325\\023CG(_#x\\026\\264B\\024\\001\\014;\\216\\027\\t[Wk*\\215e\\312\\360\\000bR\\302-\\022\\304\\263\\277\\223\\236\\231\\335\\216\\214\\236r!\\260\\264\\211py-1\\024\\n\\260@B\\371\\215\\025\\250\\325\\3215<p\\016S\\203p\\262t\\352>\\322t\\364R((\\271\\256E\\330\\376,8TQ\\222\\315\\201P\\210\\227\\t\\214ag\\307\\360n\\256r>\\271\\331\\346\\306b \\360\\307\\014\\235\\214\\351\\031\\376\\206T\\234\\025\\236n\\\"sp\\377\\201\\343\\177/?>\\272\\353|\\223\\014\\r\\202\\032\\304\\317\\276\\220x\\221\\341\\023\\322m\\003k\\227b= \\033aD\\332\\223n-\\266{\\235y\\217z\\027n\\335\\371\\305\\3375+\\223\\274\\220v.\\256\\245d\\347md\\247!1\\355\\307\\306\\273\\211\\224!\\222w\\255\\225\\024\\\\\\216\\223L-&,\\366\\023i\\244\\326q\\2301\\223y\\231\\312{*>X\\225GDva\\265\\233lg\\273\\303\\016\\362\\242\\322\\306\\027\\225k\\003\\327c\\331c\\002\\323\\325M\\003u\\346u\\000\\332L\\n\\030\\322`\\002{\\342\\201\\020\\033\\262\\\"\\211\\254\\334<\\357f\\315\\231\\243\\362\\316\\311\\311l\\243\\275\\242\\225`\\245._\\365\\311\\342x\\036\\035\\373\\016#\\356\\366)\\332\\214{JS\\267\\321\\2431\\3652u\\272\\316\\267\\032\\311O\\243)E\\356f\\202\\005\\032\\227Y\\371cR\\303\\353\\307\\301\\314\\203\\207\\321\\210\\237.\\026M\\027\\220XN\\325\\3665\\177_x\\3271\\275\\207/\\007mo\\022\\360\\205)Ly\\255lx\\361B\\326\\306\\010\\327H\\345\\210Re\\014\\370\\273\\323n\\035\\017nGE~W\\362\\037\\021\\3611\\030tq\\331\\227\\n\\245i\\276\\\\'\\334n\\213\\302[{\\316\\373\\2652\\235bE\\243\\333%\\2158\\272\\326s\\351\\337\\324\\256|6\\254{\\333i\\325\\301\\337\\321\\275}\\033[\\331\\347\\372\\177c\\353_\\333\\307\\203D\\321\\206\\255\\031\\362U%\\327C\\216\\260\\327\\\\\\342\\\\\\315\\304\\351\\325\\276=\\033\\322I\\032\\342\\315%Ep\\232\\354Ndws[S\\023A\\232e\\205\\005\\221\\246L\\314)&\\321\\244\\232,\\310k4\\323\\306\\362X\\216$\\362\\222\\315z\\004Y\\033\\263\\250\\027\\340&\\034\\243C\\021eI\\315\\240x\\376\\312\\255\\236_n>\\301\\323\"\"\\321\\323\\323y\\365:\\017\\205\\337\\347\\220\\003\\234\\034\\340y\\301\\266\\210\\233\\nm\\256\\333oH\\361{\\\\\\366N*;B\\303\\347\\276 \\325\\334<\\206\\366\\216\\233\\314\\342\\352F\\245\\013:\\201\\201\\307n\\226\\264ge\\342<\\212\\304DA\\004\\234e\\3005\\244'8\\207\\206\\257~\\351\\254A5\\246\\215f\\264\\327\\331\\371Z,\\2519\\2244\\242@\\322\\031S\\330\\362\\367M^mt\\035\\025Iy\\245+S\\3127\\n\\252\\246\\204\\017\\177\\226\\203\\345\\364\\n\\027/^\\246\\207BhCC\\240t)\\2717\\027m\\351d\\364?N\\026\\210s)\\360\\304(ig\\301y\\361t6\\351\\350\\231\\275l:\\032\\251.\\262\\344\\272-\\250\\032\\2755Z[o\\273\\177>\\320\\251\\306\\016QsJ\\031\\211\\232\\303\\031\\214u\\312\\244J\\236\\346\\025\\327\\\\\\205$\\211\\220\\000\\254\\252\\272\\344)i\\204Mn\\2605\\274\\332d\\367\\323\\000\\270\\226\\302\\r\\033\\036\\214\\0264r\\254j\\223\\032|Q\\022\\220Z\\251\\243@\\330\\026\\026X&\\307\\304\\310}ksGL\\366\\031P\\314\\214\\034\\3034\\332\\353\\034\\311\\236\\000c1r<W\\376\\024\\363z\\350q\\203\\200X\\230\\007\\247\\335\\n\\270\\300\\277\\000+}4.\\020\\346\\003`i\\260\\322\\232]&\\220\\306[\\247/\\217O\\251\\240C\\240\\231@3\\240G8My\\001\\344\\200$\\310d\\307`\\0266\\245\\230\\036\\276\\303a\\245C\\357\\r\\302\\260\\240a\\006\\301bX\\222\\315?\\000|g\\302\\346\\000$G1\\254TL\\246W)\\240q\\030\\261\\203\\227%\\037\\304\\205e\\313\\205O\\272\\030\\3042\\260\\020;\\200=\\303\\244\\016\\224\\220\\344\\016O\\023\\337\\247^?\\234\\217=\\034\\212RO|\\344\\200s\\004>]\\223\\236\\003\\317\\364\\375uUQQ\\363\\036ip\\253\\216\\030\\302\\252\\253\\025UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUb#D\\250\\305)!3 L\\304k\\362\\274\\376m\\255[\\312RO\\315D\\304\\235\\016Q\\251\\351\\357\\343X\\036m\\313\\305UUW\\034yW\\223A\\354J\\006\\254UMmUUTUr\\266\\252\\252\\252\\242\\242\\257=\\273\\034\\376O\\207OW\\013\\266\\305\\016\\006C\\023\\031\\\\\\226\\342\\237\\335\\237\\220cEUTW\\270w6\\231\\312\\363\\313W6\\252\\252\\256l\\225Wb\\325\\301-U\\275~\\316\\372h\\202\\212\\252\\352tw9\\376\\201\\237\\213}\\2649{\\217\\305\\315\\256\\347w\\221\\336\\375NW\\300\\221}'\\342i\\355s\\0228\\207[\\025\\332C\\243\\241u\\256\\227\\\"z\\307\\340\\236\\016\\342M`\\374\\267\\214Oa#\\331>\\326\\367\\006\\262\\331n\\367@D,\\356\\274l=X\\301l\\024\\375_\\226\\372\\370\\n{\\3777M\\214\\271k\\322\\325\\352\\223k<\\342\\314oC\\206\\024A\\322\\264A\\331\\330\\250G\\034Z*q\\023\\377\\275\\320\\351\\200\\344\\306\\371p\\275\\0358V\\366\\014}\"\"\\271\\0207 \\341\\337W\\227^Js&\\030\\252.M\\273<xh\\253\\260\\207A\\256Wl\\203\\\"\\306L\\342q\\306\\204\\036\\361[\\317\\013\\024\\031e~\\250\\310\\214j\\026\\2239\\236C\\321\\300\\271\\305\\356\\366\\355]F\\243\\250\\371\\377\\210*\\201Y=(\\371+\\023\\305\\177\\010d\\301\\200\\372wajuK\\321\\002B\\036\\323\\214\\301\\333\\364\\217\\236W\\310\\276\\365\\332\\005P\\342S\\020\\004\\003\\022\\027\\323\\t\\037\\277@\\035\\340\\214%W\\260&\\037V\\236\\253\\320\\233_\\220\\335\\331\\311\\347\\t\\250\\022>\\241\\367fz\\021\\376\\017\\255\\020\\\\\\007\\265\\226 K>!hY\\017\\345v\\031\\213!|\\340M\\023h\\234Y\\023b\\254\\317Wz\\273\\373\\366H\\365\\006\\010t\\344>HH\\004\\020\\347\\347\\341\\346r\\310\\211\\001\\222\\034\\216\\306\\372\\364\\363\\303\\006\\242\\006\\276\\205\\367}\\360i\\250\\256\\245\\345Y\\034\\264\\375\\277\\267\\256\\214\\314\\312\\324=\\263s\\267\\313\\264\\337\\020q\\006\\006$E\\223\\266\\017\\031\\277\\037\\230\\210\\317\\023]M\\346\\245\\351\\371\\0247\\326\\240\\031)\\232k\\332\\230\\324\\355\\306\\037\\024k\\253\\003\\372\\200g\\245\\\"\\250\\230K\\003YY7o2M\\027\\025\\215./\\311\\3068*C-\\3000\\2202D|~\\317\\024\\nO\\262|T\\001\\004\\341.\\204At\\210\\347+\\221\\242(n\\324\\322\\333(\\362n\\017\\030\\211\\276y\\323\\330\\303\\303s\\n\\324\\301\\000\\347\\\"K$\\350I\\246YL\\201\\016\\214hB\\013\\365RPf\\332\\256\\266[\\000\\2654/c}\\235G\\211\\237h\\207\\246A\\003\\322\\346KLJ\\322\\324\\311f\\241T\\315\\n\\333\\n\\2226s\\237\\201\\030\\312\\355\\264\\371\\305\\2413!\\302\\211\\304\\345\\303\\335\\026a\\230\\007\\210<I\\031\\213(^+\\006\\221l\\303\\262\\367\\005q\\263\\200\\316I\\235c\\223\\2203\\261\\220`w\\373\\002\\351W!v%d\\253}yc\\234\\r7\\212\\270\\215\\024\\217\\335IE/\\000\\3444\\330\\316\\211\\353\\202r;x\\307\\330\\316\\206\\304\\264!*|\\227\\254U\\017\\255\\030)X\\324\\265\\231\\256\\016\\231\\262\\020\\223\\004\\010;D\\323\\260:\\365\\353\\325\\346\\372>~c\\343l3\\227\\017\\n\\352m\\023H\\221\\322\\023\\355c\\315\\226\\021)J\\025:\\2131\\2105\\205\\203\\325D\\026_7\\301\\356[\\223\\351\\032C\\307=\\035\\240\\237\\031<\\276\\276FqY\\335\\353&l\\361\\200\\364)\\273[\\212\\262\\357\\242+\\311\\217\\245\\231:\\340mG\\364\\371%\\201\\200\\243b\\037\\033$\\030S\\222\\256\\331\\345\\025\\3130\\221\\007\\260a\\220\\357:B\\tXJ\\344\\002'Q\\325\\324\\235Ju/\\244\\016\\264=(\\372_Y\\351\\354\\370\\333Lm\\264\\202\\231\\273\\024\\002\\223A\\226\\262J\\222I\\202\\222\\032\\225\\254\\306\"\"\\324\\244i\\353M\\000\\325\\031\\320\\370<\\272\\017\\013{\\261u\\177<!h3\\017\\345\\305c8\\331\\332\\366&D\\260\\360yfe\\001\\272Av\\2271\\231f\\225\\373v\\177\\301`3\\300\\276\\254n\\271\\036e\\364e\\364\\336\\364\\372D8\\260\\235ez/=\\3110|# B>_\\270\\312\\226\\237\\020\\323M\\177)D\\323.\\346\\332\\214\\305\\234=\\313\\317\\331\\251\\321\\207\\263IC\\213\\254\\353\\2764>\\265Q>\\217m{P\\2421\\333;\\324\\226u\\227$\\264X\\350\\3006\\233_\\334\\224\\270\\264\\302\\034\\276\\3544\\260\\375{6c\\231\\004\\337&9\\3572q\\233\\305B\\014\\014\\215\\240\\207l\\366\\356:|\\275\\326\\200vDqJLE\\005\\357\\321\\262S\\261e\\362]\\330\\347\\252P\\220}v\\000\\220wt\\350\\350\\210\\266LL*\\337\\002\\340o\\352f\\356tR=\\352\\332\\201\\006L\\314\\216T$DeW\\223\\364\\217C\\225;\\315FF\\334\\274\\223\\267\\227\\276v\\242\\264j\\334\\347\\025\\031\\025UD\\025]\\270;\\244\\210'\\322J\\024\\\"\\250\\014\\242\\243P\\307\\204\\304v\\236\\203\\344\\301\\307\\352\\362-\\315\\025\\353\\212\\275r\\276\\354\\022\\020n`r\\233\\370s-\\303>\\\"\\025\\253\\263\\206o\\330\\222\\254\\222eX+X\\016\\2264\\315\\277\\030\\324\\263\\026\\214 \\354\\026frU4'PG\\220~L\\254ji\\271jQ\\005\\206&\\2626\\311\\302j\\271g\\n\\207\\336t\\276=\\251 \\235M[\\276x\\320x\\327\\215#\\232\\026\\232-\\023\\026\\264L\\035D\\352\\016\\031\\347\\023i\\n\\202L\\024\\020\\305\\0034H4cq\\254\\262\\024KP\\267D\\224iU\\003E\\322\\357=\\251j^5]\\255\\340\\336\\333x\\272xp\\371d\\234\\363\\2171h\\302\\322\\325\\025\\306 \\215,\\363\\371<\\223\\311\\003o[\\350u\\236\\311\\036\\352\\212\\253\\256\\205p\\345R\\325 \\332\\262\\335\\274\\204=p\\206\\352\\202>)_\\250u:\\t\\204\\306\\367\\241G\\370i\\360\\327\\344^\\327Z\\013\\007K\\031\\254\\324H\\0143&\\311\\302\\265\\224\\361\\227X\\326\\035mev\\3169\\247\\316\\t\\342kr-b\\241j\\020x\\342q\\304df%\\231k[\\034F\\233Q\\252\\222r\\353\\242\\350\\201g\\016yl\\361\\2211\\\"[\\323\\347\\263\\367~v\\343Q\\241\\017.XH\\234m\\237\\312\\307\\243\\300\\275z\\370Px\\327b\\372Q\\3176\\014\\203\\311\\177[vi_\\247\\227\\t\\366\\225\\312Xh\\373\\227\\251\\324\\202Fmz\\332\\036xL\\204a\\346\\205\\030\\200\\310v\\314\\332\\341\\236\\010\\251B\\216\\352]\\357u\\317s\\3048\\303\\005&8v\\330\\203 \\200\\307\\350\\360\\313\\303'.\\247\\255a\\r\\000&\\250\\021_\\235\\203\\243\\277\\342\\3538\\317\\010\\212cJ\\362\\030k\\034W_o\\262\\372\\310\\352R\\r\\327Dz\\324\\2056!\\205\\262E\\021\\223\\240\\242\\306\\306\\300;\\nk\\272\\346\\276\"\"\\272\\353\\274s\\231\\264i\\207\\212Hl\\320\\243NlZ\\221\\t\\215\\024\\025D1T\\032\\255@\\320\\334\\360\\200\\261\\304\\214{\\t*9f)\\212b\\3256c\\256\\246\\\\\\354\\271Xa\\022\\300e\\206`\\331\\035t\\245\\2147\\035<;i\\225M\\246\\376\\375F\\371\\013\\315\\332\\001\\2603\\240g6&\\300\\330t\\r\\241\\257N\\207\\214*\\362u\\322\\205z\\245\\017V\\201-\\022\\005\\241\\244\\352\\\"g\\224\\211 F\\021\\364w\\201\\341q\\362C&\\270\\207\\263\\330\\312\\216S\\014A\\326\\321O\\025\\340{\\002\\366\\374^\\305\\223M\\252\\262\\027K\\270\\030\\231~\\376\\224\\311\\031*\\245\\365\\315\\031\\305\\2504\\024\\001\\3100\\274\\002i\\252\\036V\\034\\266<^\\177s\\351\\320\\232\\261\\266\\334\\223\\303\\004\\003\\203\\020\\342\\321\\033\\2028\\262X\\252@\\260e$\\033\\230oR\\245\\352G\\244\\330\\006\\304\\335f\\307\\325T\\310R\\217\\035\\311A\\326':3\\315X\\010\\230\\030\\331!k\\2759\\371.\\031\\257^\\275o\\236\\233\\372\\263\\324svIu\\335\\353\\014\\226\\031\\262q;!\\334\\233\\020 \\016\\342Vd#2\\030\\245\\211\\261.\\317\\005\\202\\326\\356\\261\\335E\\263\\224\\224\\320\\371\\224\\027E!\\032\\360\\243\\213\\272\\010\\356\\373]\\213Ru\\357\\231}\\375\\270\\352\\244\\014\\\"i\\006\\035D\\325f\\376_\\022JSI(5\\321fL\\035\\334d$\\255\\322\\201\\242V\\030L=\\353M\\236\\374\\365\\275i\\326\\366\\030C\\323\\203\\303\\315\\t\\316{\\324\\204\\225>\\243@\\350\\343e\\371\\347Eq$\\347,WJ\\266\\t\\225M\\001A$\\303$A\\214\\322\\024\\231\\211q\\251\\201u\\200\\352l\\311\\227\\312@\\037jv\\233\\315z\\343]\\343\\321\\177T\\360\\247\\315\\254\\311\\230a2H\\026Xt\\t\\324\\233\\2753\\245.\\273i\\274 \\2060\\202\\215\\n\\244+!\\334\\317\\275\\233\\315_^\\033\\334\\034\\003L\\205A\\326\\257\\250\\353\\352\\3511\\350P\\357l\\225\\006\\3006\\211\\035\\254\\332ep\\303\\315\\311-\\2115WPk\\317\\323\\324\\342\\203\\017t\\3578P\\340\\037q\\234\\027\\037\\262\\214\\007\\306i\\246O\\266{\\213\\312\\277D5\\320\\231o8Al\\306\\310&\\310F\\314\\204\\257\\257\\326\\3269\\206_\\010EZKv[\\260\\0313\\030~t\\253.71\\237V;\\222\\017\\027lQ\\223\\372\\264\\327\\307\\325e\\027oL A\\237\\324T\\362\\324\\302\\223\\232t\\2030\\304wO\\324-[\\332\\356\\302\\014\\373\\035\\216i\\037\\266f\\226\\315\\224q\\372\\034\\2533\\333n\\250\\305\\353\\265\\t5\\234\\217\\026\\350zA\\316M\\036\\246\\275\\332\\2143pT\\310\\375d\\020\\237\\\\\\301\\304\\263\\0359\\240\\212i\\005\\232t\\366#0\\223xZy\\006\\242\\212i51\\251\\233H\\325mYs2\\262-\\036g\\3636\\016\\342\\340\\335\\301\\3435\"\"\\221\\342H\\357\\246Z\\257\\005]\\324*\\253;\\036F<\\035%\\373\\\"v\\276\\235\\363\\014\\363\\026\\227\\264's\\244\\330\\241\\323\\342\\351\\340\\024\\231\\223q\\255\\006\\016\\3720pbC\\365\\270d>\\263t\\\"\\233\\357\\277g\\360A!\\310\\350S\\265\\324\\306#\\030(\\260\\004V((F*1\\025\\324\\354\\006f\\251\\301\\3116\\352\\rT\\372\\210\\300\\355%\\330\\003v7e\\203?{\\215b\\007\\273\\362y=W\\203\\272\\001\\220\\002\\036\\t\\003\\322\\260\\227\\n\\326AeI%\\025\\265_\\006\\346\\272\\2044\\237\\227*\\004`w\\222\\303n\\212\\213D\\271\\010`\\030\\000\\254\\2201y\\3639\\303\\022I\\014\\322P/\\253\\021\\200\\237\\\"\\326\\200R\\260-\\005D'\\302\\004\\361!\\316`\\\\\\327\\250\\003\\274\\021;\\303\\336<\\007mUc\\353\\026\\2121\\025\\236\\2628\\244\\\\rd\\305\\264\\304\\262\\300G'\\201'\\301\\030B\\247\\200\\367\\016\\366\\240m3\\372\\220ht\\360\\233\\341\\031-;;\\367\\\\8\\035\\350\\010'\\230\\243\\205\\352\\256\\255\\330\\357Xk3\\223L\\344\\035q\\346\\311\\356\\247\\267\\223\\261\\304\\003\\342\\342\\023\\206\\213\\\"7F\\302\\021$\\2340\\233\\315*\\035S \\034\\204\\377\\247\\333d\\306\\013L\\222\\005\\347PfN\\300I1\\371\\202\\227P\\256R\\216\\036\\372\\025\\334n\\0254Cj\\235C\\324\\207`\\035\\253Q\\006\\261\\271;A\\261\\201\\330\\204?\\340\\200\\325\\033Y\\001H\\001\\212G\\210\\226m\\275\\001\\376&\\363v\\266\\354\\265u\\2147\\274l\\017\\343\\225\\210\\225\\205a\\013F!C\\326!X\\223\\205~\\374.\\306\\220\\370\\030\\321\\273\\315\\272\\013\\206m6\\242\\216\\037c\\000\\201\\366&\\3178\\206\\345u=\\301\\352\\354\\232)\\t\\304\\247\\205\\346\\362\\312\\244\\361\\340\\335\\217V\\252\\2264\\177\\\\^\\346D\\324\\006<\\220t\\356\\315\\007a\\343\\036\\266\\211\\236\\241\\277\\255\\304X\\353\\343Ov\\333rl\\236\\\\6f+\\235\\016\\020f\\343\\255\\247\\265\\352\\321wvx\\272v\\213>\\266\\2456!%9\\203\\335\\307\\255\\247E\\332\\223\\265\\021\\253K\\034\\222@\\237\\022\\222W\\00393\\245{v5Q\\273\\305\\373\\007=\\267\\364\\333\\335\\203\\207\\336\\333\\217\\223\\256\\373\\310\\257\\262\\377s\\3664\\177\\265\\366c\\\\\\206\\370\\034\\274\\035\\264\\274K\\302\\024\\2451\\372V\\266?S\\024-l`\\215t\\216X\\205&P\\317\\203\\2756\\337\\213\\332\\272f\\354\\262\\311\\3754})\\030\\331\\232\\337#\\322\\323\\254T#\\304\\2262\\224yF\\373\\342\\023\\305\\265\\315\\337\\343\\312\\177k:\\375\\352[V\\332\\360\\3337o7\\177\\311\\340\\371\\022\\024N\\367\\205\\024\\032\\021am=\\\"\\360\\\\8N\\n3\\322\\014,\\017\\\"\\352\\330\\337\\255!,C\\022\\250\\215\\300S$4\\306\"\"\\366\\351\\216\\304\\215\\\\m\\274\\021\\340=G\\246\\361\\233\\024\\221\\303\\267\\242 \\365\\033#\\0212\\254\\232\\300\\373\\275\\2653\\3417G\\r\\344\\332\\001\\2444\\265C\\014\\206\\344\\034H2!\\265,*m\\313'Y\\003`w.\\331\\036\\030\\351\\371\\237\\036\\0033_r\\003\\201\\202\\020\\337f\\224\\242]\\234\\221\\034\\362\\276P#d6\\001\\356(\\262N\\246\\231\\300\\310\\316\\230U\\253u1\\036\\372\\016M\\030X\\261\\336\\274\\245\\200\\260\\270@7\\332}\\257\\261\\361\\365o\\331;A\\312\\234Rc\\t\\3329Q`\\0216d\\244^\\231\\202\\343\\237sV\\320\\251\\262\\013\\317\\331\\207\\233}x\\272\\246\\013m\\333\\024\\010\\303\\245)\\242\\026@!\\335\\305\\322\\211\\231\\317\\214\\343g&\\205\\225NK\\242V\\030\\323\\273\\314\\252\\t\\231xDh\\314U\\230\\324\\327N\\234\\354\\255.P\\t\\335#\\364\\274I\\036#\\354 \\240+\\3104\\322/\\010\\274\\244$\\223\\rw\\260\\364\\003\\253\\300\\034\\031\\006S\\372\\t\\323\\220*P\\035?L\\002\\210\\014Q'\\337\\325bA\\351\\260P\\036'\\360\\305>M\\300\\226E\\210\\344\\344\\324\\025,\\007i\\276WU\\350Pv\\226x\\214XHF \\311! \\300p;\\013.S\\246\\025\\246|\\365UW\\334\\340\\273\\303st\\356\\2627\\035\\310\\373\\304\\020n:\\210\\tI*B\\210H\\234d\\n\\220\\214M\\310\\033\\272]\\206\\341\\023w\\332\\336x\\316'k\\367<r_\\246\\213\\306ZR\\365tM\\010\\365\\204z\\3037\\000\\333H\\227sP\\372\\360\\246\\231\\302\\230\\275hUr\\336\\r\\2747\\215\\350\\205\\346\\242o\\313A\\321\\334\\332%\\245\\250x\\t\\340\\334\\3423\\273/\\3674\\253\\320\\235\\204y\\345!\\341\\371t\\322\\001\\250 jN\\025\\340\\016z\\017!#\\001\\214\\314\\237v\\001\\324r(&>B\\307\\200\\340:m\\331\\n\\267\\034\\221\\317\\233\\032\\231\\030dt\\236\\257A\\317\\010IQ|(TISOhJf\\007\\030=\\001\\320t!\\320x\\250c\\316I\\225\\341\\363\\363\\365]~$\\223(\\006`&b|~\\016NA\\264\\362\\236\\2238\\363\\337\\036\\007\\300_\\276\\3538\\010\\351\\\\\\211\\241\\340\\252\\364\\343\\313\\364\\213B@\\267\\013u\\322L\\023w\\020\\347\\311\\243\\310WWT\\004\\322CI\\322\\362@\\362z\\337z\\373\\233\\237\\227'd9w\\267\\202\\361\\035\\023\\231\\023R\\023Q\\316\\272s)\\2247\\026x\\250`\\332[\\330\\324e\\363U\\324D\\361\\302\\246 \\276\\216\\235*iw\\030\\\\&\\356S\\344\\tMZr\\027\\033iB\\354\\321\\205\\034#-\\304\\207\\204/\\251}5\\362~F\\217/_\\252\\260\\311\\242\\252\\213\\3048\\325\\276\\260\\276q\\203\\257\\221\\300`y\\271\\017\\224\\240g\\333\\202\\267A\\227\\222\\2259%\\356\\377uE\\212\\030\\306\\3049q\\364\\274\\347\\312\\363k%\\230k1\\2359m)QX\\336\\227\\254\"\"\\333\\211\\027\\020\\223\\232z0\\232{M?\\220,\\350MT\\304\\330h\\227B\\270|+d\\377\\004\\376?\\257C\\346\\264OBj\\310g\\353\\353\\215u\\261MD\\313&U\\204\\313\\202\\301f\\213H\\211\\252\\256\\325<\\274pP\\303T\\r\\240,\\200\\315\\002E\\nT\\331\\311\\204\\\\\\\")77w\\026\\017\\370=\\023F\\205u\\377\\215\\000(\\032D\\017\\367\\200\\270\\\"4V(@P\\212\\021\\025\\203.\\366\\321\\017\\371\\010\\250@\\212\\204\\\"\\300\\024?\\225\\210*|_*$\\374Q<\\247\\374\\331\\022\\034\\347\\331\\215\\213?\\315\\212AA\\210a\\213\\002H\\307\\350\\366\\263\\016\\320\\303\\342l\\361\\375\\313\\234\\235\\345\\\"\\210\\231\\265\\\\\\244\\201\\024}\\006:\\330C\\376\\361\\177\\370a\\3758\\372d\\000\\301\\000\\312@\\313\\253\\024b\\005\\022\\\"`c\\222\\0352C\\221\\314\\237j\\004>\\210/;\\366\\245\\340\\t\\350\\260>A\\366\\037\\333\\332\\376\\251\\360\\232[L\\322\\332\\345\\205\\363\\024\\213\\n\\340Y\\363\\025\\271\\177\\274}\\356\\345R\\366\\275p<\\020\\t\\256D\\006\\010Xd0F\\300f\\2201Z\\224~\\324?\\250\\002\\037\\237\\177\\360\\002)$RE\\010\\007\\370\\241\\020\\006\\314w\\024&`?|\\2079\\203n\\031\\200\\372\\007\\370\\300\\252\\235\\303c@\\363\\246\\346!\\246\\330\\002y\\322\\t\\265\\027\\226\\276\\360\\004\\276\\321\\035\\231En\\205\\t\\201\\003\\347=\\014\\277\\030_\\n\\204\\000\\004(\\221OB6\\347\\275\\023\\266\\252\\303\\000\\214\\320\\203\\374\\3165e])\\256\\017\\354>?\\336\\371\\337\\\\\\r\\017\\367\\320\\t\\001\\030 \\361!\\326\\300C\\307~2F\\362\\016?\\\"'\\017:\\317\\360\\366B\\341s\\270.\\253\\200T\\247\\320\\315_\\225;}\\330\\000`\\001\\030I$\\177TQw/X\\241\\213(a\\334:\\007G\\323\\223\\324\\303\\273\\352\\307\\304*%/}@\\365R\\200\\332\\201\\211L*\\242r\\300i\\357\\211\\\"\\037|\\262\\223\\241\\370\\177\\327?o//\\373\\303\\245G\\000\\021\\316D\\370\\272\\242:\\243\\302\\020I\\246\\001\\002\\355\\034O\\253\\270RB\\032\\000\\201\\245\\000\\207\\034\\000C\\210=$r\\241\\361\\377\\327?\\314Xd\\237\\332Bb\\253\\377\\nN\\243\\025\\363\\337\\333\\327{\\361\\276W\\313\\375\\334\\303v$%\\320\\300\\201\\233\\253\\253\\257\\365\\236\\337\\316p\\202_L\\teA\\334\\347 \\223\\007\\001\\020\\207\\330o\\377\\354{\\306\\375\\262\\304AR\\330\\377\\345np\\313\\036\\030\\324\\276/\\203\\201t4kE\\253\\211J\\006\\356\\376S'\\200\\020\\276\\006\\\" \\202 \\210H\\205\\204\\240\\225\\014\\220\\250Q\\272B\\207v\\341\\204\\\"YB\\327\\320a-\\027\\001uO_\\376\\356\\357d\\355\\014\\026\\321\\247\\314)\\364\\315\\365\\033\\357\\255}\\347\\016\\245+V\\031\\001\\t4\\024\"\"\\340\\034W\\335\\016_cd\\3367?\\3062\\351\\313\\300\\001\\002\\230X\\247\\006%\\357\\333\\201\\341\\300\\006\\232,\\214\\300\\241V\\356%F\\240J\\023H=\\035\\354\\262G\\316\\016\\352\\033\\226\\206\\321\\376f\\240\\ti*\\343q\\314\\270\\3600\\030Z\\373=\\035\\375\\323\\035\\003\\266\\004@\\230\\346\\324\\373\\264\\030\\214l4\\226\\206\\372\\030\\320\\320\\000M\\372\\365\\272\\236~\\344A\\274|\\342\\375\\360\\004\\234s\\227$Z:\\366\\234X\\202o\\302)@\\262\\331\\247\\\\\\347\\247\\311\\031`\\370w\\3442\\026\\020\\353\\217\\345\\\"\\177\\237\\265\\341\\333\\001\\217<l\\342HH\\202t\\251\\354\\320\\263\\361\\033\\356\\304\\352\\177K#\\264\\006\\246J%\\002\\246\\371\\031o\\2415\\033]pepq%\\017G{\\255\\336\\245>\\034\\264_\\2242\\376\\013aR\\227\\312\\\\\\0270fp\\024)}J\\225ms\\302\\247?r\\003&\\344\\246@\\020\\2102\\034\\024\\242\\220\\035h\\251\\034\\007^xhg\\246\\177!\\213\\314\\000\\254\\365|\\035]W\\317\\221\\223\\374\\343\\205\\030\\274\\3228\\007\\311\\332\\227\\314\\307\\312\\360\\221N\\035\\037\\314)\\336n\\305\\353:\\276\\006\\014\\275\\253\\246\\271\\246\\334Q\\203\\205\\032\\030\\245\\226m2uP\\236\\210\\233\\306\\376|x\\336\\031\\313K^\\027\\241\\014\\3058\\000\\317[\\210<e\\266l\\335>\\304\\316Xw\\321&I@\\316\\0312\\305\\010\\253U\\206\\303\\034\\027\\0263!b\\363\\242\\345\\204\\201\\337\\310\\024\\3701\\2313_\\227\\n\\336\\336\\204\\036\\372\\001\\211\\010Q.\\200\\276\\344\\314hI\\006v\\353\\336\\200n\\300p1\\275\\376\\302\\te\\201\\242\\373\\371\\024\\312A\\233\\006\\3163\\352>\\315\\376\\304\\207\\001\\004vxz\\327R\\221`\\341b\\344+d3\\226\\316\\373E\\306l\\3313\\367\\323\\205\\207+\\343\\317b\\023\\006+u\\317\\271C8\\342';d\\336\\307\\275\\263\\215\\000\\312\\031\\212\\020]\\236\\205\\030\\316\\226m}\\340\\216j\\371i\\274\\304F2w&)\\226)\\324\\2113\\tst\\366\\201 v\\221v\\364t\\375\\307[\\0351{\\310\\241\\023v\\221\\t\\351\\227\\231\\004\\250\\363\\037'A\\265\\316\\306og\\255\\316\\177L!\\346\\\"\\024o\\216D\\376\\304\\216\\302\\376g\\355?\\265\\356n~\\217w\\231u|\\340N\\030\\215\\017\\234\\345 \\r\\326{*\\3641\\3267\\301.\\202\\010]bn\\243g\\215\\227\\030\\336\\244\\027\\314\\303\\215\\222\\215\\007!t\\265\\257\\301\\300\\336\\247\\337.\\310\\2448\\221\\2441\\004\\232Z\\036\\337S\\270\\275_\\221r\\027\\363\\257E\\t\\024c\\240\\\"$\\021q\\244\\\"Oo\\345\\303\\335\\3067\\333\\310\\240r\\007#(\\375\\216!\\353\\\\\\341\\026\\006\\003\\257qr28\\352\\271\\226\\222\\\"\\\\h \\303/w\\007\\3608D~\\256\\177\\027rf\"\"\\343H\\343\\177\\032%NG\\002_\\013w\\270\\225\\360/\\217E\\344H\\242\\021\\037\\311r\\350\\016\\272\\327\\205\\342/$4h\\217\\353K\\333\\366}\\367PzN-\\256d\\034\\247(\\034\\212B@?\\263\\327\\377\\245\\340\\033\\211\\334\\251r\\234\\242\\344\\202\\210\\010p\\240\\267\\235\\350\\177\\n\\016\\3563\\215\\005\\362X\\306\\001\\310\\320\\266\\r\\334\\313\\201^.%t\\214\\341@\\344\\216\\351\\227\\320\\357\\322\\342\\374\\300G\\022\\006\\2721!\\032x\\031\\226\\025\\217m\\253k\\205}\\341\\302HH\\234+s/\\236\\205\\276\\333\\212\\342y\\005\\020\\340\\030k<?\\264^\\347\\333\\317\\271\\246\\270I\\022Q)D\\3670\\234\\274\\245\\252\\374\\366\\211\\224\\311\\004\\337\\276D\\347\\241\\314\\014{3\\354\\037O\\321\\315\\354\\3418xH\\305M\\314:\\302\\322\\013\\005\\262a\\307\\000Zs\\016\\r\\002\\327\\3255\\261\\213D\\002\\322e\\274y\\246&,\\237`\\246\\034\\316;[|\\372~\\275\\022\\3211\\t\\233\\367oX,\\016\\036:\\300\\343\\335gw\\252\\301\\372L\\222\\204J\\310\\326F{\\004\\237.\\341\\353\\260\\2209\\373\\303o\\0239ji%}|\\314\\310\\371\\020\\205\\367.\\324\\037\\3047\\245\\022\\n)|\\031\\rH\\244\\341\\250\\031\\301\\373\\205\\3573\\022Ic\\227A\\230c\\302\\345\\205\\355\\337-\\020\\337\\257\\331\\332\\221\\214\\310H\\334`1\\231\\\"\\221\\263\\325\\357\\014L\\013M.4\\014\\263\\007\\263*\\205\\363'\\337\\rJ\\034\\221`\\367z1+|\\331\\274]\\226j\\351z\\016w\\006\\242\\224\\304{~\\236\\200\\306c\\230\\375\\340\\374\\361\\301\\366\\237R\\373Nw\\256\\201\\234\\367\\024\\271\\377\\225\\201\\177x\\367\\364\\214\\207\\262{8\\367\\332\\3667x\\372\\301\\227H\\324+;\\032\\261\\3279\\201\\006\\341\\005\\010\\332\\365>\\003\\2504I=y*L\\232\\346\\304|\\235XA\\317\\240Q>\\t/bZ\\317 \\366\\236{k\\352>\\222AI\\310\\0369z\\226\\231E\\306\\253\\016(\\230\\263\\224\\366D\\366FVYj\\311\\274?C\\310R@Y\\374/\\030&xT\\360*p@\\331\\007\\300\\203\\350\\200{\\302\\374b\\036h\\t\\315D\\367P;*\\037\\255\\007\\333\\0004\\200x\\312\\234dO\\024\\036*/\\210\\017x]\\260}\\360\\017\\352\\250{\\\"\\233H\\033\\240\\374\\310\\373\\240\\364U\\345)\\311GQM0{Hx^\\266\\364zq\\275\\036\\3057d\\324\\212\\223x\\t`\\022\\352\\326!\\211\\227\\245X9k\\032\\262p\\313\\307\\260mA2\\325\\352p\\345\\271rX!^F\\244\\273g\\\"V\\335\\210\\022\\274\\321o,\\206\\222\\005,\\212\\313QX\\204\\033\\030\\206[\\314\\333y\\207\\036\\001\\005\\241(\\222F\\350\\2617(B\\205\\361yb\\305\\n6\\205[\\005Z\\302\\255B\\352\\324\\244\\000@\\r\\273\\037&\\316\\322c\\032\\342pL3\\212W\\032`\\3041K\\255\"\"\\306#p\\334\\025\\303\\021X\\301dw6\\233\\331\\2511\\235\\370\\351\\212L\\204\\2404\\031P\\225\\010\\010\\010@$l\\r\\316\\202\\205\\033\\302\\327\\021\\230\\251+\\310\\0218\\254\\026\\302v\\220\\210D\\332\\010[\\252\\033\\232v\\257E\\300\\322&[\\2324\\243\\212\\303_~\\354\\361Dp\\t\\340\\234\\227\\306z\\211\\300\\306f\\240\\020\\300\\020\\360<\\272\\314\\351u,\\222Cw^\\032\\350\\202\\204I\\2102\\014\\203\\n\\2248\\262\\315\\264\\270\\302j\\342\\022\\030p\\225\\300diG`\\004k\\030P\\224\\310\\005\\201d$\\230\\270\\345\\2634\\215\\315\\323\\231\\272\\334\\254\\260\\2066\\300Hid\\202\\010-\\004\\010 \\202#vR\\205\\303.\\332\\334M65\\234\\223\\261\\375\\264ym;=\\234u\\244\\306om'm\\014\\016z\\370be|\\327\\303\\232g\\363\\022\\237\\327\\214b\\034\\250\\\\-8\\270T\\3277\\007M8\\016\\007f\\261\\321\\242\\207CG\\274\\227\\275gw\\277\\234\\025\\250\\252\\247v\\325\\317WVL\\235\\353TS\\347\\374\\337V\\273\\363,\\351\\340\\177#\\312u\\232\\363\\t\\022\\221\\263P\\360\\245\\313i\\216\\016+\\305\\306\\005g\\030\\303\\272\\261\\336\\t\\014,\\303C\\261\\256\\020\\010\\2468W\\267\\300\\342\\200\\010\\344\\221\\233g)\\213\\210\\027@\\014*\\024\\356-\\311\\255:{\\231\\021\\247q\\356\\351\\032t\\006\\021\\005Z\\016$\\016L\\274f&Z\\013\\016dBK\\265gv\\324P\\254\\275\\265\\252\\305`X&B\\236)2a\\317\\\";\\245c\\215\\266\\270A\\324\\036OBx\\230\\331#$\\200\\034\\301\\246\\204J\\013\\277'd\\265\\265T(z\\241K\\001\\315\\177\\032-BEH\\205E\\005\\240\\322\\212\\022\\nR\\010\\021\\203$\\022R\\310\\024)d\\n\\026\\220(R\\311,\\264%%\\262Y)a(R\\220,\\226\\310\\024\\226\\302\\026\\026\\200X0\\214-\\220\\262\\330K\\031\\001\\004\\200\\226\\204\\245\\244\\2260\\022Z\\022\\301\\000e\\241,- P-\\200Y-\\204\\260d\\020\\022\\010\\036\\375\\222\\304\\2031d\\224-\\222X\\221\\nY\\nKHX0\\022\\322\\025 \\202B\\244)h\\026[\\013l\\226\\361\\014\\004\\301\\217\\222aZ\\034\\262D\\2360\\2222q\\220\\220\\227\\214\\014\\204\\207,\\td\\345\\241+8\\271jQ\\nj\\001.\\242\\300\\323I\\t\\0314\\221\\221\\362\\201\\030\\030\\337\\267!\\334\\352\\355=\\371\\234\\343\\275\\236\\274\\006]u,\\022:%\\354z\\275^\\257V\\236\\247\\325\\347wc#\\300\\301\\337a\\231\\231\\233\\005\\217\\315\\277\\006\\370{\\274\\337\\003\\242 \\311\\374\\\\r\\265\\366\\364\\361\\177)=\\361/\\303\\236\\017\\357\\346<\\360gE\\374\\333\\253\\323\\242I\\271\\021\\233\\370\\340\\340Y\\313\\214\\307\\226\\267?<\\\\\\315\\315\\036V\\264=L\\030\\375\\221\\357\\302\\316C\\221\\337`f\\031\\231\\231\"\"\\266]OQ\\306\\206\\357\\227_\\311r?\\005\\\\\\332\\334V%|\\207\\377\\213\\271\\\"\\234(Hz\\206L\\267\\200\";\n    PyObject *data = __Pyx_DecompressString(cstring, 12652, 2);\n    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)\n    const char* const bytes = __Pyx_PyBytes_AsString(data);\n    #if !CYTHON_ASSUME_SAFE_MACROS\n    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }\n    #endif\n    #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (14132 bytes) */\nconst char* const cstring = \"x\\332\\335}\\311[\\023\\311\\373\\370\\220\\304\\031f\\\\F\\024\\227\\031g\\346\\023f\\\\@\\001\\005\\227QgmH\\200HHB\\0226\\021cC\\032\\210\\204\\004\\262\\240\\270\\214s\\344\\230c\\2169\\346\\230c\\2169\\346\\330G\\216\\376\\t\\376\\t\\277\\367\\255z\\273\\273*\\033Q\\321\\371>?\\037LU\\275\\335]]\\365\\326[\\357VoU\\337w\\336T\\342\\361\\344\\212\\232\\211%\\023Nw*\\225L9{\\303JD\\361z\\375\\243\\021w0\\3307\\242F\\235\\376\\345\\247\\332J\\206]\\030Q\\\\\\021\\377\\310\\003\\367h\\230]\\t\\250)uS\\313h)\\363b@\\t*S}#\\331x\\374\\372\\210\\246\\246\\340\\216\\014\\\\N8{\\261\\024K\\257;\\177w\\336\\350w\\372\\264l&\\245\\306\\235\\177`\\001o\\306+\\177:o\\364\\271\\324\\364\\272\\026uzc\\t\\315\\225\\204'\\215lv9\\2569\\335\\317\\267\\222\\t-\\221\\211\\301\\223S\\311\\235Xb\\315\\251\\354h)uMk~e,\\233Xa\\235\\363%3\\316\\261d6\\021eM\\035\\233\\361\\215F|\\376pd\\314?\\343s\\365\\231w\\255\\253i\\247\\232pf\\023\\351\\214\\212\\257\\334\\322R\\261dt<\\225\\314n\\325\\3240\\036\\364\\317\\004\\204*<\\211\\255l\\206\\335\\003\\030uz\\0221lL\\354\\205\\306\\357\\366\\370\\0023av7\\240\\026J\\236\\260G\\361z\\036\\272\\371c\\351\\373\\236\\004b\\tZo\\215\\201\\307\\027v\\007}\\212\\027\\207\\301\\037\\204\\033w\\240\\276\\250sBMD\\241a\\374\\216Y\\250\\304\\025\\231P|.\\257\\333\\274\\303\\033Kg\\234\\341\\335-\\371&\\257'\\024\\216\\204\\027\\002\\326}\\326\\340\\231\\335\\027\\037`#\\311\\020\\025\\366\\370}\\r\\236\\232H\\306\\243Z\\252\\3013\\023~\\257\\313\\035l\\376D]\\333\\304\\307\\3446n\\231\\317B9\\2539W\\0019\\223jvu\\023\\006I\\211\\252[\\231\\330\\216V3\\342\\336\\330rJM\\355\\262\\241\\250\\035\\006\\257g\\204\\r\\2020\\000S\\356\\220\\322\\254*\\037\\020\\025V\\023\\312nm%S\\031\\252\\004+\\010\\315\\004\\002\\376`\\330\\355\\352\\303\\353Z\\\"\\231][wn\\245b+\\232SM\\255e7\\201\\026\\323\\367\\235\\332\\363-\\2308\\360\\030\\334\\24493\\353j\\3069\\272\\233Y\\007D\\307\\322\\316\\250\\026\\217-\\303k2Z|\\327\\231\\316\\300\\263\\330M\\270)\\341\\014\\270\\003\\003\\267\\356\\336\\002J\\214:S\\032N\\276\\2643\\235]^\\211\\253\\351\\264\\226v&W\\235\\313\\331X<\\023K83\\200\\312\\364\\240\\323\\263\\352\\334Mf\\235\\t\\r\\336\\225I\\002\\326\\322\\322\\003\\231u-\\341Lk\\031\\3148\\257\\250\\211D2\\303f|\\004\\036\\207\\356^qFc)x\\t\\\"\\000\\236\\036S\\343im\\320\\237\\315\\014$W\\007\\202jb\\rf\\0364\\304\\223\\210j\\317\\031\\002\\374@\\312\\376\\261HP\\361\\215\\273#n\\237\\013\\320\"\"\\351r\\317\\367IO\\2042j*\\323\\354\\231PX\\t\\206\\255\\247ZM\\034x\\256\\311\\314\\241\\007W\\000_\\313\\032t}M\\305\\016\\310\\320\\255d:V\\017}\\241\\245\\222\\004\\201qP\\021\\014S*\\235\\211\\255lX\\340\\344\\016\\022]2\\016cI\\300\\364\\212\\n\\023/\\r\\364\\350\\004.\\021\\303\\211\\313\\257\\244\\357\\233$\\216Y\\203\\341%\\223\\361\\276Pls+^KV\\241LJK\\254e\\326-\\346\\27080|\\343\\306\\340\\340\\300\\320\\215\\033K\\300\\024\\211W\\366;\\027\\02128\\310\\200\\343Z&\\203\\225\\230\\027o\\000\\220\\030)\\334\\t\\267\\321\\323\\346\\215\\234\\257\\3025\\270\\200/`Us`\\3377N\\370\\027^\\207\\2162\\024l1\\262\\214\\2558\\237\\245\\324-`z@\\305\\214\\323\\205\\001\\327#W\\340\\216e\\240P\\025\\204@\\014\\031\\325\\252\\272\\242\\001\\321!\\236X=\\010\\204\\221f\\264\\227\\306\\036\\307Vw\\235\\33146\\\"\\226\\210\\306vb\\321,\\2606V\\227s\\225xM\\332\\271\\274\\0133\\006\\020\\023\\305\\373TVQ6\\021[\\215A=\\346[\\330\\204O\\363\\016]_I&2\\251$\\264\\237\\325\\213C\\022U3j\\277q\\335\\254\\232Uer\\2164M#\\230a\\032\\033\\205\\224\\226\\316\\30638k\\314:\\234Pu\\032\\330&\\233[\\252\\363\\311\\223(\\314\\306'O\\240\\304\\352z\\362$\\221\\335\\334\\332\\005\\200\\232J\\251\\273ig/\\264\\no\\333\\202\\252\\325\\364\\240\\013\\252\\030\\303\\327\\341#)\\204'\\343jJ\\202\\367\\365;\\201\\231\\260\\332X\\035\\254c\\232\\272\\262\\216oLni\\211~\\347zl\\r\\006+\\236|\\326\\357\\\\\\211'\\323\\032k7\\247\\300A>TD\\2778\\223\\237\\3052\\353\\2546\\234\\322\\000\\2100\\204Dx\\373z\\373\\234\\320\\365\\365dt\\3209\\267\\036\\203wlh\\273\\200Uv\\2617\\335\\007\\031\\r\\206\\007!D\\307i\\3473`\\021\\254> r\\206`\\254\\327@(\\322\\210\\201|x\\212\\217,\\336\\300_\\232\\200\\036\\246q,\\201p2\\273\\203\\337X\\264\\305\\030\\220sM\\313\\340{\\254\\211\\215\\215\\007\\374\\311\\004\\341L\\260\\231\\005}Nna\\031\\332\\261\\013E\\\"0\\253s\\316$SG\\030\\375q\\372\\341\\034\\0160\\n\\252\\3143l\\0320\\342M\\024\\001\\026\\255\\001\\266YE\\006\\251P\\257\\033S\\306}\\336\\203\\001\\370'\\276\\371zX\\0310j\\034\\260\\004\\023T9\\220L\\304\\305\\267\\341\\223\\003\\274\\216\\372\\261\\021\\013}\\302M\\306\\343pi-\\335\\273(\\336\\326\\277\\344\\\\d/d\\327\\\"\\320\\352d*\\262\\361\\014\\013K}\\274\\261\\256\\344\\n\\223:\\\\\\223C\\342j\\362\\200ED \\023\\330\\024\\204\\311F\\343\\311j2\\225\\201\\030*A\\t\\230\\203XY*\\271\\006\\325mB\\365+l`vb*Q\\300j\\262_\\242\\003xY\\355\\004$\\322\\210\\201\\250\\262P;@\\350\"\"\\036\\200\\001\\310\\246\\022\\342\\004\\2261\\210\\257IrFk\\022\\031\\343S\\310\\2708\\235\\003\\371\\\"\\231k\\211t\\026*5\\306\\221\\321\\271\\032\\177\\206D\\303\\324\\t\\2520\\225M\\310\\370]\\352s\\376\\302\\010?]7\\\\\\006\\211@\\013\\361b|u\\220\\232Bu\\031\\330\\362\\020\\262\\336c\\340\\244wJ\\243\\337\\372\\245\\341d\\322\\t\\372\\317n\\013}#\\234\\212\\201\\024\\316\\002\\023\\252\\021=pa\\253\\245&M7\\214k\\t(\\362\\331z\\240\\366=\\223\\330H$\\237\\221\\375 \\025\\230\\010\\237\\361M\\372\\374s>fN\\314\\242\\026\\207\\003\\264\\005c\\004\\225\\301\\010\\302\\234\\205Y\\024\\217m\\3062\\365WA\\025g\\342\\210]\\236\\323\\200Cb\\367\\344\\327/9a\\016\\014\\376\\325\\357t\\366\\366\\365\\\"\\202\\026\\377P\\243\\321\\010(9Z/\\242\\tX4\\016F\\337\\245\\336h,\\275\\025Ww\\031\\241\\366\\001\\027\\277\\324\\273\\206\\232}\\037\\316\\303^\\023y\\026GZUcq\\203]i\\254?+\\311\\250\\346\\354w\\256%3$\\20183G\\263\\341Y*\\tm\\212\\306`,\\322H\\303\\342\\3658\\223\\367\\234 \\243\\261\\325U-\\205\\210\\024n@=\\016\\271,4\\332\\031e\\370\\226\\tT\\\"I\\213\\367l\\306\\322i\\316\\270\\266\\263\\240\\302E\\2710\\003n\\217\\002t\\r\\225\\363\\035\\216R|1\\352\\022\\2505@7 \\327\\307D\\332`d%\\231\\322\\0067a\\272\\304H.\\361>\\203$\\007A\\016J\\257x[\\026\\346\\377z\\335\\035\\227\\322\\275\\227@\\250\\300\\277Ki\\320\\0224\\240\\366K0\\031@\\273\\275\\0361\\364\\206\\301\\255\\3471\\002\\255$77\\223\\t\\001\\200\\350\\026\\212\\274\\n\\0230\\270\\202B\\207\\263\\005\\016\\300F\\360\\034k\\033\\317&S`YhQ\\224\\333\\034\\300E3\\345\\2318\\346\\371\\364.e2\\353\\360\\036\\324=\\224\\321\\321\\021\\260\\240B\\312\\250?\\244\\270\\024\\027\\374\\371C\\243\\212k\\036\\376\\202\\240t*\\001\\277\\022\\364\\373}\\354\\007\\256D\\\"J0\\250,0C%\\244\\204<>%\\254\\300\\377\\2402;\\356r\\317\\302o \\350\\031u\\2032;\\312\\364\\312\\020\\0279\\351\\021\\366\\222\\021wX\\031\\361\\007F\\222\\321]W\\362i\\014S/\\320\\r\\246\\241u@&ff\\265\\024\\003\\216\\216zF]\\336\\341\\321\\240\\177.\\004\\231\\233#^et\\322,y|!\\217\\313\\2159\\257\\307\\347\\016\\205\\203\\236IV\\002\\215\\331\\270\\200z6\\264/\\004\\240\\t,\\317Mx\\302\\356\\020\\230Y\\036w\\020\\353P\\260I~\\237\\3335\\242\\214,`\\3315\\253\\370F\\335#`\\374OBq\\304\\355\\r\\243Q\\206\\331\\240[\\231T\\346\\024\\274k\\324\\353\\207J\\307\\247\\224\\340\\314\\210\\377\\341\\014B\\374\\360\\224\\342\\305ZBs\\2001\\006\\232A\\373U\\t\\207\\025V\\227K\\tN\\302\\2033\\256Q\"\"\\377\\254;\\210\\000\\377\\003\\017%\\330L\\314\\006\\225q\\277o\\314\\273@\\227\\334\\276\\361\\031\\357\\030\\274\\t\\363\\263n\\037\\344\\204\\273\\tB\\245q%\\200\\235\\306\\377\\254\\223\\010\\202\\001\\001\\264`\\367x}\\023\\312\\324\\024{5\\330\\313\\343\\254\\003>V\\000\\333\\323ce\\202\\376\\020\\242f\\3023>1\\007\\025\\260\\354\\344\\2442)\\344\\246\\374\\210\\222\\t\\377\\024T\\022\\360\\214\\273\\375X\\017\\274\\331\\027\\366\\214*\\336\\233\\306\\010y|>7\\353;\\230\\271n\\264\\025\\315\\006LzF'y\\277(7\\262\\200\\275e\\203\\004\\203\\000V\\360\\210?\\034\\366Oa\\321\\357\\033\\367\\272\\307\\307\\335.\\352\\005\\003\\300\\200CV\\030\\201)%<:\\001\\025y\\375s\\274D\\3436\\345\\017\\326\\340\\215 T\\362\\033m\\014\\000I\\214\\3626\\001\\365N\\206&\\2249\\216\\237\\240'\\344\\036\\2031\\2759\\345\\206J]\\330\\261\\220\\033\\r\\366\\260\\2077\\204A&\\374\\376\\260U+\\024\\203ajd(\\000x\\200Ka\\177\\000K\\240\\363y\\335\\256\\000\\320\\205;\\350c\\000|\\033\\220\\341\\234g\\024\\273\\037V&g\\202\\036\\226\\t\\315Lz`\\\\1?\\021\\234\\t\\205y\\353\\200\\316\\351-3>\\317\\364\\214\\373f\\320\\303\\tj\\206Q\\000<`N\\230y\\002\\230Mw{\\274\\243S\\376Q\\1770\\350\\006\\002\\r\\301\\337\\2044G\\3211\\341rO).\\317\\254k\\336T\\336]\\311\\014\\300\\334\\363\\001\\3676\\2301c^\\277?8\\246\\246\\014\\301o\\244\\203\\221\\010J\\363H\\244\\026\\260\\332\\340\\306ume#\\002j.\\251\\032\\214I\\013\\327Aanq\\0255i\\3515\\3746\\246\\rD\\322\\032(\\263i\\256\\212\\t\\267\\240\\217/.\\224Q\\304Ju\\000\\327\\225\\312`\\211\\241\\254\\213X\\300\\232\\356\\210\\360F\\335\\021\\2567\\350\\216p\\265Y\\353\\205[X\\353k\\313(\\352\\004\\030>SS\\204>\\231=2\\233\\275\\032W\\327,\\314\\254\\325\\250{\\r.\\310\\250D\\270\\245\\331\\232`T\\203\\315B<\\231\\334XVW6L\\000\\327\\336j^M@\\271z\\322\\363\\3142\\250\\252f\\276NM\\224\\2564\\354E\\272I/\\322R/&\\302\\021\\327h\\300\\035\\364\\370]<;\\241\\204\\334\\220\\303\\324\\037\\204\\014\\260{,\\207\\203n\\037r33\\017\\214\\320=\\001:\\2317\\371l\\002\\254gf\\\"x\\246<\\021rw21\\031\\342r\\322\\2001\\331\\030\\t\\301\\313\\000\\346\\002\\3162\\343\\r\\207&\\225)\\005\\353\\205\\007\\334\\343f&\\242 \\353\\263\\212\\314!:\\352\\016\\204-P\\310\\353\\017\\270\\275>\\257\\177|\\350\\006:\\212\\247\\240\\242Q\\027\\376w\\317\\2071\\031\\363\\314#lJ\\231\\rL)\\220\\235gN\\247)%\\202S\\235\\022>\\341b\\031m3\\022\\261@|\\226M\\001\\257\\302\\026O\\215A\\277\\\\\\001?\\264\\001S\"\"\\006\\362\\370\\340\\217\\327\\007Y\\205~\\r\\300\\014t\\317C\\351\\324\\224\\177j\\n:\\212Z\\202\\017\\004\\222OSS\\376\\221Y?\\327Y\\\\\\240\\263D\\\"\\001\\340\\201\\n\\334\\013\\312\\304\\030\\010\\\"\\267\\t\\341\\270\\nxY\\205<\\231\\202\\213~/\\310v\\351v\\016\\241\\333\\003~\\200\\354>\\207\\377\\254z\\237\\366<\\023\\324V\\203~\\340\\215\\243\\001L\\360?\\250\\201\\240\\0370\\207\\035\\366:\\250\\251q\\246\\210@=J\\0200\\210\\272\\203\\3077\\021\\232RB\\323\\301p(\\014\\222i\\026$\\352\\350\\004\\373\\031c\\277PAhf$43\\025bs7\\264\\256F\\223\\317P{\\3419\\246\\324\\360\\254\\241\\326X%\\341b:|\\023\\264(\\370\\233\\300\\345\\007\\322\\310X\\326\\317\\022\\027\\373\\341\\277\\300\\271Y:\\317\\177\\203\\230\\004\\374\\370\\213\\032\\232\\221\\322]\\320\\001LX\\345\\220\\260\\233\\231\\242\\3063l(q\\355\\302x!*h\\230\\370\\003\\360\\013\\032\\030\\376\\032J\\030\\317\\013z\\030\\001\\270*F\\005K\\033#\\000)dT\\022u2\\002Ij\\031\\207I\\232\\031\\201\\004\\345\\214C\\014\\375\\214J\\206\\212\\306\\2135Z\\032\\001k\\0245\\003*\\350j\\034$\\253k\\004\\003%\\302\\3121\\037./\\211z\\033\\007\\231\\252\\033\\025e\\355M\\002Z\\200Z\\035\\216\\240\\222\\032\\307a\\\\\\2212\\362\\2062g\\224Q\\215\\023\\363L\\245#\\000iuF\\211\\251sR\\001X\\032\\225\\005\\365\\216Cj4<\\0022\\005\\312\\310\\213z\\036\\207\\221\\202'\\025\\014m\\217\\003E\\205\\217 \\222\\316'\\300\\200\\262xI\\036UA\\3713\\001\\026]\\324\\250\\200\\022\\320\\002\\370\\205~\\030\\272 /\\t\\352\\240\\001\\2205B\\016\\255Q\\n\\t(\\350\\205&\\204\\253\\206T\\264\\264C\\002H\\n\\242\\001\\023tD\\016\\342j\\242\\221'M\\221\\212\\206\\262H\\305\\240\\320mQe$\\210\\2545r`\\255\\342\\210P\\320\\0351\\231B>\\3035H\\226\\t\\361_l\\026j\\216\\230x\\220\\2650\\346\\304\\001\\2409\\342\\212#\\352\\215\\221\\010\\255=\\342\\222Z\\304\\007|;d\\202\\340\\016\\005\\021\\305\\224\\2300\\256>\\262\\245Y\\0210\\226\\3224\\\\z\\3242\\010\\342+\\201V\\331\\003:\\010/1\\307\\266\\271&a\\301\\275\\244\\230\\360\\222\\177\\253\\351\\215|]\\243\\356\\002:K\\244\\226Y\\020j\\232\\240J\\230%\\324&x\\201+\\024<\\037\\3424 \\252\\025B\\0215\\013\\\\ d3\\231k\\016\\006z\\254\\025\\\"(\\240\\346\\300\\326\\365H#\\020\\363\\\\\\177\\220 \\246\\n!A\\231\\026\\201\\020\\2447\\246K@\\312\\352E\\025\\202\\022\\020\\207\\224\\003\\235\\202\\345\\350\\216\\331\\000K8\\214\\213\\177\\314\\222\\342\\200\\3311\\354\\204\\241>P\\326\\270\\306\\244\\223\\241G\\360,\\325ei\\023\\274\\304\\344\\277\"\"\\225E^1\\3058\\006j\\026\\270,\\311\\205\\033\\350\\025\\326\\262\\231\\2013\\322\\036\\314\\034>\\026`\\\"\\223\\2151_\\2275\\006U\\000\\321\\250\\202\\256\\300\\177\\003<\\tR\\002\\372\\003\\346BXq\\020\\324\\355dJ\\343\\366\\224K[U\\263\\361\\214\\341\\372\\200\\313!6\\005\\271Z\\201\\031\\326oT.0a\\230D\\025\\003\\023\\246e\\260\\214\\237\\315v\\256k\\030\\031\\3762\\3208\\330/\\366\\003^\\\";Z\\010\\226\\334\\334R3\\261\\345X<\\226\\331\\345 \\211\\340=\\334C\\326\\340\\n\\252A\\034<Ca\\000\\001\\026\\005\\200\\260\\365l\\006\\224\\225\\004dQ_\\211p\\255\\202\\264\\2260\\237\\356a\\266\\306\\3112\\036\\0020\\202\\t\\207\\260\\023\\240\\014\\033c\\017\\303\\306u\\224Y\\206\\233\\271Q\\257qe\\316\\343\\3652\\020<\\217\\225\\362\\032YuX\\027TD\\265\\360*\\340y\\343a\\366$<\\246\\256\\254hq\\\\\\\\\\306\\205\\024!\\217Zm\\034t\\260ZX\\03251\\021X{\\323\\246\\372\\274\\001\\250\\3561\\006\\210D\\230!\\214\\013\\211\\350{]C[EM\\257\\304bj\\032\\375\\234jz7\\261\\022K\\016\\256$\\201{\\300\\210iiug\\215\\007Z,/kk\\261\\350\\363\\345\\335\\214\\226\\036f&)\\267\\251km\\317&&g\\204\\2557Y\\332\\374J\\034j\\207;\\\"\\350\\203\\324\\220\\363\\255@'4\\266\\272\\306~\\\"hD\\n\\016\\306\\025\\\\mK\\2001\\214\\267\\262<\\200\\266v\\243Q\\r\\215\\341(\\247j\\3762*\\244E\\237r$\\022M\\256\\260\\237tT\\\\\\217\\3216\\2672\\273\\200\\013\\350\\232\\226\\0000.\\372\\257\\252+0_V\\001%\\321\\310\\246\\212x\\341y\\216\\010\\314o\\010y\\346\\377\\306\\214u+]\\004\\233\\222\\331\\225\\354'\\202\\246gv+\\022e&\\005\\242\\213~q\\010X\\006\\rU\\226A\\324\\260\\014_N\\223\\355c\\263\\204\\2752We\\230!o\\364\\033\\0273XO\\271}\\317\\036\\253\\265\\246k\\214\\350\\206\\236\\000\\331\\240\\026L1\\346\\232g?\\351u-\\276\\205\\253\\243\\370\\237\\r\\331:\\343N\\261\\030b\\224;\\241#\\314?\\017\\244\\214\\021\\007\\330I\\303\\202\\023\\333c\\265EhUS\\377CS\\317\\0049\\327#\\261t\\304\\244a\\310\\263Q\\306\\266\\2477\\264]\\370K\\363\\205\\036\\356\\373\\347.\\014\\356\\271\\210'\\327\\014\\027\\001\\rX<\\371\\014\\376X\\327\\330rH\\004H\\002\\310\\026\\tc\\235\\2178L6\\370\\203&\\001\\005@\\227\\263\\233\\220p\\n\\200\\2734\\240WF\\371\\221\\315X\\002\\376\\330m\\320zv\\235\\326\\010(\\211`\\303\\340\\276d4\\033G\\357Nd3\\225\\214\\000\\235\\262\\336E6\\323k\\tN\\310\\306o\\\"\\261\\034\\325v\\330O\\224\\347\\263[\\tx\\3429\\330\\373X\\235\\210^ m^f9s\\234y\\211;6\\230\\307\\236S\\\\ru5\\255e\\222\\211\\224\\266\\003\\003\\257\\341\"\"\\0328\\376g\\221P(K \\317\\020\\222D\\336lVVC=i\\353-\\302\\n\\000\\274\\014\\376\\324T2\\231@nm\\344\\263[\\220\\343\\034\\0062\\253\\352\\246\\312\\022\\230u\\224n\\260\\261\\334ZW\\2419\\230c\\303l\\345xs\\262\\231\\270\\246F\\001\\227x\\317\\246\\272\\022\\245d\\035= <\\233\\216\\255%` \\261\\300\\336\\001c\\305\\177\\371\\233y\\306\\250\\r\\006\\212\\377\\322E\\2261.&\\226\\201\\265\\\"\\037\\341\\370\\023\\035I\\202\\377Ht%\\021\\242)\\211\\260uO(lg\\325(\\260\\235l\\noNi\\254u\\2300r[\\306\\205I^\\336\\214EA\\224\\n\\000\\266\\376Fe\\352t\\032\\036\\212R\\272\\301\\327Y\\330\\014\\346+\\235\\330\\nkB\\263\\\\\\032\\306R\\313p\\t\\301\\211\\222\\377\\246)a\\275\\345\\2134[\\311\\255\\010L9\\254A\\213\\360\\271\\307~n\\260\\337!q2\\326ML\\\"\\t\\006O\\033+\\305\\221\\010zm99\\247\\320\\323\\201\\263\\t;\\206\\377o\\260\\037\\366z\\314\\r\\261\\037\\263H\\031`\\357+\\232\\3412\\245\\245e\\014\\032@\\035\\003I.\\023A\\341\\220\\312&\\322i\\020K\\233*.\\330\\362V\\325y\\354j\\035u\\351Z\\006\\211\\000\\336V\\331E\\007%\\203\\361r-\\207\\005~12\\343\\374\\201\\347\\t\\237\\033\\261\\255\\310j,\\225\\346#E\\342\\205\\347\\351\\016\\0349\\001\\276!\\300\\231\\250\\301\\214u\\231.bH\\027\\tZ&\\233\\341g\\230\\211jZ\\3653\\3346f\\321of]f\\306\\312\\201\\346b\\346\\347\\255\\\\\\320\\310\\006\\374F\\016\\3359b^x\\022TH#\\013j\\230\\2315+a\\256\\036\\253\\300\\224$*\\216\\210\\215E\\267\\217\\221\\365\\007(7:\\3521r\\206\\013\\310*\\013n \\001\\310]A\\002\\300r\\007\\t@r\\t\\t\\020\\321-$\\200%\\327\\220\\005\\227\\334C\\002Xp\\021YP\\303M$@\\014W\\221\\005\\252q\\027\\t\\027j\\\\F\\342\\025\\301md\\201e\\327\\221\\000\\367?\\360\\310%\\354\\263\\000\\021\\335H\\026\\330t%\\t \\331\\235TwA\\006\\326\\272\\225\\204+\\222k\\311\\202s\\377\\215X6\\\\L\\\"\\014]K\\265e\\346j\\022\\200\\344n\\022!\\314\\313T\\007\\000{W\\200\\t\\256'\\013Z\\343~\\022.0\\327\\215X\\026\\335P\\026\\234\\274Ou\\000\\303\\035e]\\020]R\\002TrK\\325\\300\\201\\312-H=\\025\\t.*\\t(\\323e\\215\\253\\252\\356\\202\\014\\364\\327\\364\\333p[Y\\020\\301u%\\002e\\367\\225u\\245\\306\\205%\\\\\\020\\334X\\022\\224\\273\\262\\004\\220\\345\\316\\022\\200\\222KK\\204\\013n-\\013\\314][b\\231\\334[\\002\\310pq\\t\\240`\\r\\312DW\\227\\000\\225\\335]\\326\\205Z\\227\\227q\\305\\3551g\\374\\224\\301\\217\\271\\373\\313,\\204\\254\\234\\321\\rt\\205\\031Y\\217\\301~M&o]t\\317\\033\\275b\\3561\\312\\013N$\\t\\202\\216$\\013\\300\\235IV9d\\215\\204\\350T\"\"\\252\\001\\241c\\211@\\036s\\376\\242\\027\\211\\262\\246W\\250\\266\\314\\275IuP\\323\\243Tw\\205y\\225\\014\\2501\\354\\314\\273Dy\\363\\235\\350T\\022\\262\\356\\371\\260P\\032\\363\\314\\233%\\341\\211\\331\\200\\231\\265\\256sw\\221Q$\\017\\224Q\\0343zkx\\242\\204\\242x\\237)P\\r\\257\\224U\\024\\336ey\\247,\\010\\3631\\311E\\203}L\\231\\214\\004\\275U\\224\\365Yr\\332?bP\\t\\271\\252\\244\\222\\361l\\300T\\t\\202\\376Q+\\027\\260\\262A!;t\\303\\3004HV\\312\\205\\314)\\302]QF\\301\\3544\\272\\244\\214\\254\\211ntM\\031Y\\346\\2362\\013~s\\346r7\\225X\\020\\336:3b\\346\\214\\276\\204o\\032\\031\\2239\\241\\037\\311\\310Zs\\204{\\177\\314\\202G\\270`\\222F8d\\274\\331\\360\\014Q\\221;\\210\\2500kv\\336p\\027\\031E\\364\\032\\031y\\250\\037,\\304\\214J>\\226tv\\005\\264i\\006`\\356\\002\\334\\032\\023\\211E\\031`\\315r<\\013E\\346\\017\\246\\262\\345 &@\\275\\307\\231.4\\364F\\033\\327\\352\\335\\321t\\005\\243\\311,7\\237\\0014\\266\\357\\220V\\213`+\\374\\030K)\\356\\254\\214\\360\\310\\177\\303\\247\\021!\\335\\232\\365\\r\\365o\\272\\\\\\007\\256}g\\272\\361;\\323\\344-\\214`\\001\\215\\\\\\346\\272bw\\361\\0204\\204C\\n0h\\017\\374\\032\\021i\\231\\330\\246\\026\\312\\200A\\205\\031^\\237\\225\\033\\262\\262\\303V\\366f&\\031\\341\\341p\\240\\263G\\330\\217\\025\\303\\221\\335\\002KF\\343\\277\\314\\003\\304\\214:\\246\\312s}\\236\\031F\\334z\\242v\\356p\\377\\024\\017?\\347\\277\\314\\034\\372\\267\\343\\355\\215\\241w\\227\\2778rl\\357\\267\\234\\232\\333\\336w\\234\\314}\\235\\357\\316O\\357;\\216\\357\\205sgs\\333\\371\\216}GW\\256\\013\\177~\\310\\007\\363;\\205\\371b\\260\\230)\\335)\\237\\257\\234\\252\\334\\252\\274\\322CO\\364'\\252\\256n\\352\\233\\t=\\361Z\\177\\375\\217\\376\\317\\233}\\307\\231\\334t.Y\\200j\\216\\356\\r\\265\\367\\222\\023{\\352\\341\\276D\\250\\373\\370\\336R\\276'\\177\\267p\\277\\030.uaq&w%\\177*\\377k\\341\\347\\202\\262\\357\\370v\\357YN\\323/\\374ZJ\\225\\341\\342\\t\\375\\304\\377\\362\\333\\205\\316\\\"v\\\\\\357\\272X\\030)D\\213}\\245\\337\\312\\321\\312\\345jG\\365;=\\030\\321#\\320\\234\\270\\036\\207\\346\\274z\\367\\305\\027\\257;&l\\220L\\330\\374\\230\\370m3\\230\\314\\330f1\\231\\265\\315\\331XC\\365\\263\\375E\\305l\\351\\204>\\261\\254/\\277\\322_\\275~w\\343\\000\\274|\\273\\267M?\\255\\220\\223\\324\\223\\377\\300\\353\\336t\\370\\360\\255>\\243)\\213\\230,\\332\\036a\\362\\310\\266\\201\\311\\206-\\216I\\334\\366\\014\\223g\\266\\347\\230<\\267\"\"\\355\\332$|B\\203\\240\\235\\327o\\274\\033lg\\330\\272s\\320\\265S\\271\\036l\\343\\205\\374H~\\2650Q\\034)FK\\227\\313\\235\\025[\\345b%\\256\\007a\\364\\240\\3070z\\330R\\030=x\\351\\337\\266\\007\\370\\356\\007\\266IL&k\\032\\273D\\rJ\\024\\030\\332\\356\\353g.\\025\\246y\\233\\332$\\245&-\\221\\206\\017F\\000\\250Iz\\023\\016\\320\\320p\\273/\\3711\\277\\\\\\370\\262\\260^\\\\.9Jc\\345\\336\\312\\317\\025W\\365\\230\\036n\\330]\\305 \\205\\313\\005\\325x\\223\\343[\\375\\333_\\nCT|w\\354\\213#\\247\\364\\256k\\305!\\275\\377\\317\\262\\252\\377\\345\\257f\\365\\360\\214>3KO\\336,\\r\\275\\205[\\357\\345\\224\\\\8\\337\\205O\\335\\332\\333\\316\\331sC\\271\\211\\374X\\241\\347\\255\\343\\253\\177\\237\\355\\255\\344\\316\\344\\242\\371K\\371\\347\\205\\347\\305\\335r\\307~\\347\\267{\\031\\270c\\024\\033\\376\\326qd\\277\\363d\\016\\200\\210 %\\037.\\234/vA;~\\371\\255<\\364\\256\\367\\203\\247O\\376\\257\\342\\317\\305\\251\\272\\371\\0035\\244\\000s\\013\\205\\215Rwi\\266<T\\366T\\226\\364\\340\\242\\276\\370H\\177\\264\\256\\257\\307\\364\\330s\\300\\314n\\207\\013\\307\\334e\\020\\3024&\\323\\266 &A[\\210\\010!\\226\\3376\\220\\3669\\033\\013-]\\322\\227\\240\\245O\\365\\247\\273\\320\\240\\027\\035nl\\227\\333\\346\\305\\304k\\265\\022\\222\\220-\\\\\\337X\\307)\\375\\324p\\251\\2474DCx\\257\\334E\\003\\235\\373_\\241C\\357\\201!\\325o\\271*Je\\232n\\350-\\032\\243\\364u\\276+\\1771\\257\\342X}\\007\\235\\272\\005\\225v\\236\\317\\177]\\350*\\\\\\004\\n\\352\\374>\\177\\2550\\r\\334\\251\\267\\324\\263\\337y6\\267b\\334\\375}\\376\\227\\374t>Z\\000\\350\\271\\\\\\232?\\010\\r\\271y\\353\\335\\325\\003\\210\\032\\t\\203\\377tA\\343l\\205\\313\\305\\316\\222\\255t\\261\\264Z\\236\\250\\214T\\242\\325~}vE_\\211\\352\\321-}k\\033:\\234\\352P\\260\\337\\212m\\004\\223\\021\\233\\314}\\0026\\253G\\210\\215\\337s\\330\\214[\\267?\\212M\\377V\\036.O\\327\\261\\351\\336\\242\\255x\\261\\030+\\275\\2049\\276ZU\\252\\013\\315\\032J\\243F\\303\\265\\200\\311\\202\\355!&\\017\\201\\001Q{o\\224:\\204\\tyZ?\\365K\\3416\\276\\350\\253\\1773{\\367at7a\\302\\002\\302\\243\\320\\332!\\344\\004+\\271\\256\\334EV\\274\\231W\\363\\377\\024\\247\\033\\002\\337}\\371\\305\\221\\316\\177\\263{#{\\3130co\\347mpi\\030\\006\\000\\246\\347\\366\\273o\\2768rt\\017\\030h\\347\\336\\221\\275Y\\230\\254\\236\\374\\\\A\\001^\\334\\t\\315`O\\330\\200\\275\\036C\\034\\250\\3729\\300g\\261\\013h\\330\\344W\\277\\336m\\223_q\\201\\266Z\"\"\\234(\\215\\224\\242\\345\\313\\225\\316\\252\\255z\\261\\032\\327\\037\\256\\351k0!3z&\\013\\250\\3301h|\\014\\2231\\333x\\235\\014S\\336\\r\\177\\361uW\\316\\001\\214\\037Zx\\237\\270\\347\\261\\013\\200\\217c's_\\3452\\372\\205;%u\\377\\344i\\375\\364\\345\\302\\032 \\244\\373|\\376\\233BO\\341O\\030\\330\\356\\237\\2006\\257\\024\\177(M\\277\\245l\\027\\334\\230\\033\\332\\357v\\026\\276*l\\003\\242\\241\\237\\351\\\\O\\356\\317\\302i\\250\\364\\344\\031\\306\\372Y\\212\\214\\363\\344\\271\\334\\366\\333\\223gq\\212\\025:\\366\\257\\337)\\255\\224\\273\\312\\203\\320\\217\\236\\375{\\367\\367o\\334*\\271\\241\\334\\303\\260\\n\\230\\351St\\005\\370MV\\317\\356H\\242\\366}\\311\\356\\006\\314\\203\\201\\362\\233jR_z\\274\\217L\\333Y\\350@\\326)\\347\\271\\210\\316\\024\\356\\025'K\\231\\362\\235JW\\245\\257\\372\\207>\\017\\310\\335Aa\\333a\\342\\023\\222q\\213g@\\022\\266\\255`\\262bK`\\222\\260\\355`\\262c{\\205\\311+\\333kL^\\333&\\354\\250g\\330C\\230\\204\\354\\213\\230,\\332ULT\\3732&\\313\\366\\025{\\235\\034W\\220\\225\\260\\221BA\\323yl\\317\\007\\262a\\033\\007\\353v\\341XQ).\\226;\\200\\027\\002\\316_\\000\\003\\031\\004\\364\\237\\354\\006i\\242\\354w\\367\\027\\307KC%\\345\\355\\311\\336\\342W\\305\\355R\\007\\307\\251\\362\\356\\004\\r\\375\\333\\316\\013@\\300\\217\\212g\\212\\033\\200\\362k\\225\\351\\212\\272\\377\\203\\263p\\242\\250\\201\\272\\244U\\206\\360\\205\\303\\205P\\361H\\361\\021\\\\\\377\\271\\254\\300\\304\\275\\330\\013\\305\\231R\\017L\\206\\257O2\\261\\244 \\227\\332\\306{o\\351WF*=HP\\267\\241z\\027#\\230[@\\020\\016\\240:\\240*{\\356\\327|_a\\010I\\342t\\356V\\356\\005\\260\\301K\\205\\355\\375\\3563oOv!\\355\\000/\\005\\336\\nD\\335\\261\\177\\356\\374~\\367\\367\\372\\367\\343\\225\\355\\375\\363@\\223\\320\\231\\363?\\344\\335\\360@\\017\\300y%o;\\217\\352G\\177\\312\\257!eu\\347\\036\\300\\024\\315\\026\\374\\300\\244\\217])d\\231p8\\316\\250\\261\\341\\305\\357*=o!\\233)\\336\\002\\264\\034\\001:\\206&\\337\\334S\\367\\376\\311\\207\\nv\\326\\302c'\\365\\223=\\354}\\307\\260\\255\\333y;k\\305q\\340\\255\\271\\237\\362\\031\\375\\227\\337\\313\\nV\\2152\\371\\313\\374J\\241\\273\\360\\020\\252r\\224\\224R\\030\\307\\002D\\206R\\341\\263\\\"\\307\\356s\\303\\320@]\\247r}X\\317\\333\\316c\\372\\261\\237@\\363@\\366\\207\\371\\037\\362\\n\\\"\\364\\370\\236\\027\\245\\303\\3761.\\333\\027\\201M\\\\(\\001~\\221\\244{\\364\\323\\277 6k\\356\\373\\001$\\305F\\261K\\277\\212\"\"\\r\\202\\362\\031\\230\\036\\377\\200TI\\300\\270s\\275A\\242\\037>D|\\360\\266\\215W\\357\\037;\\223\\233\\311\\017\\320\\324\\325\\277\\375_\\376YA+\\016\\341DWA\\t\\001\\034~\\227?\\0130\\340\\003Eu\\277\\253\\247p\\016h`\\272\\346\\362.p\\360+\\245.\\020e\\214\\201\\340\\314\\004R\\235\\312\\237\\001\\211v\\254;\\347\\322\\317\\017\\026\\325\\342\\266y\\025\\333p\\032\\030l\\234MSbB\\033\\330\\251\\323\\300[;\\013G``\\217a\\007\\356C\\017W\\221h\\316\\3452l\\020\\240\\227\\347\\271\\250\\004ez\\372-\\243\\254\\373 \\366U\\030[d7\\271yx\\342\\251A\\362\\307\\365\\343\\320N\\201\\352\\361]\\267\\366\\2629>\\310@v\\373\\235'\\366\\264\\334]`\\030=\\374\\032\\316#6\\303NA\\373\\220\\333\\030\\2446S\\354\\331?\\371=0\\233\\333\\205o\\261+8\\256?\\002K#~w\\033\\251\\004\\333\\371\\006\\332\\222.\\366\\000y\\355\\000q\\235<\\247\\237\\353\\003~\\177\\251\\370\\232M\\241\\253(\\236\\256\\016\\203XV9\\221\\262f\\013\\3256\\251m\\250\\276\\246!\\320t\\000\\003\\247s7\\241\\235;@\\275\\035\\2053\\205\\225\\342\\271R\\307\\2770\\374'\\255\\356\\202\\330\\311=\\303\\221`\\270\\203D\\207a\\354\\20218\\216Z\\314Q\\030l\\270\\362S\\376%t\\220\\021\\337$\\014+\\336\\364s\\241\\207\\337t>\\377?\\240\\306n&\\005\\217w\\345\\216\\344fa,\\334\\360\\266(\\266l\\037[\\006\\335\\202\\346,\\224\\201\\305\\377\\010z)N\\0366\\321\\267\\365\\363\\275E;\\322\\323\\371|\\207\\376\\3355\\375\\332\\004\\030b]8R\\217\\340\\256A\\300\\006'\\\\\\024\\214\\300+\\232\\277\\001T\\255\\222\\253\\3745\\316,\\363\\rgr\\213\\320\\353\\237\\020oT\\tN\\354!\\336jV\\356c\\223\\010\\310\\244Q\\225C@\\262\\027K\\2612P1\\312\\262\\036\\340\\260'q6\\364\\200\\222\\331S\\374\\253|\\261\\254\\3425NTI\\240z\\343-}\\210\\014\\342\\250H\\351\\n\\022\\356\\235|W}\\362k\\276GH\\356\\242\\210\\255\\005\\336\\316\\303\\200\\275\\3534)\\024\\333\\212\\335\\272\\000\\354\\235\\351\\020wr\\247\\221`\\221\\340.\\200^\\261\\010\\250\\3562\\330\\271\\365\\330\\261=/\\342\\372(\\030\\227\\0071\\007abX\\317\\237\\315\\251\\300\\232\\366\\306A\\226\\263\\251w\\023tm\\300\\307y`q*\\314\\007\\034M\\375\\334u\\3163\\367\\273\\277cM\\t\\003=^c\\3526H\\034 \\227\\375\\2563\\271P\\376H~\\332\\030_Pu\\365+\\367\\312g\\313\\333\\300\\330\\t\\267\\177\\302CWJgK\\333\\345\\016\\344\\275\\360\\272\\357\\362L\\204e\\364\\323\\027\\251\\322\\036\\034\\344ic6\\334\\001\\211>\\3049\\356?\\205\\005\\340$Y\\350C7>\\325}\\016\\324\\376SLI\\003i\\341,8\\230\\336\\005b\\343\"\"\\226\\376\\277_\\341\\r\\307*\\312\\376\\017=\\014\\225()/`\\361j\\261\\347-\\023Sv\\336\\325mj\\230~\\341\\032\\312\\004\\203\\364\\0019\\307LY\\t P_\\220\\266\\020\\321\\243{\\257\\363\\036@%\\362I\\211\\275\\031C\\364\\220\\261\\037\\250{'7\\253_\\030.\\375\\0028\\272\\203\\224\\213\\023\\270\\027\\212\\323\\373]\\347r;\\372\\217\\277\\226\\322 \\363\\276\\004\\331{\\022\\324\\263\\342|)\\204H9\\215\\354\\036%Q'0\\350\\374t\\375X\\233\\322\\017\\010\\373\\033\\213w -\\035/\\314\\002\\263\\240,\\360,\\351\\271\\023{\\033\\2004\\2135C\\275\\271\\343\\371\\260\\336\\203\\2702U\\204o\\352\\357'\\255\\003\\357?\\221\\327\\n\\277C\\377\\216\\262Q\\347\\232\\332;\\0077#D=\\366\\250\\221\\371f\\357\\032pwP`\\217\\355M\\212J\\333\\235\\302Y\\306\\375$\\035\\356|\\371\\373\\312\\255\\312\\363\\352\\013}\\001\\2147\\260\\001\\300\\014O\\353\\351L3\\325\\356Ni\\271\\314,\\236\\237\\004\\203\\0025\\227p\\361\\273\\322\\265r\\270r\\266\\262]\\375Z\\237\\206\\312\\236\\350OV\\365UP\\347\\300\\254x\\251\\277\\344.\\027YW&\\333\\207L\\212\\010&\\021\\233\\206\\211f[\\305d\\325\\226\\304$i(u\\377`\\362\\217\\355\\001\\352o\\017\\354\\223\\230L\\332\\037b\\362\\320P\\352\\342\\230\\304\\355)LR\\3664&i{\\306NJ\\371\\265\\\"\\271\\017HPO \\367\\205I<TR\\370\\324?\\247\\237\\277\\r\\344r\\014\\3354\\307\\201g\\350\\337\\337*1f\\200J\\020\\223\\233k@!G\\321\\201s\\234X\\nS4\\366\\271^u\\004\\330\\005j&0Gixq\\222?\\000+\\350N\\221(\\001\\215\\r\\006C\\245\\034&\\020W2\\374\\371{\\205\\261\\\"\\323\\026\\216\\213\\372\\n\\\\`\\215\\005U\\341\\0223`/#;\\\"\\022\\260L\\262\\206\\256'\\223\\022\\276\\335\\333e\\002\\316\\\"\\t4\\222\\221\\304`\\230\\027\\363\\035\\350\\035\\301^\\334)tY\\324r\\206\\331\\\"\\206\\357\\346\\273\\374\\317\\371\\261B/\\030R\\256\\322\\227\\245\\365\\362r\\305Q\\361\\352\\0010\\027\\300\\024\\342\\n;9&d\\217\\304cL\\036\\033cK\\n;\\r\\352\\0269\\000\\342\\300\\311\\3108\\373[\\221\\210\\272\\216\\204\\273\\352\\311\\367v\\265\\243\\031\\265^+\\016\\027k\\355\\337\\33490&/\\346c\\205\\227\\314VW\\312\\013\\225\\r}zV\\237\\345\\316\\013 Y\\244\\177h_\\266\\306^\\247~\\221\\313\\215,\\220\\030&1\\333SL\\236\\3326\\250CO\\013\\035B\\207DG\\2029$-:t\\263\\2426\\353\\320@1\\010\\214\\307q\\232s\\356y\\354\\034\\347\\236\\205\\273H\\330|\\230\\\\\\205\\257A\\n\\273\\312_\\2028\\335\\255\\036\\325C\\357\\335\\271uL\\326kF\\353\\005&/ln\\234Qn\\273\\037\\023\\277}\\006\\223\\031\\373,&\\263\\3669\\2734\\240\"\"\\177\\345{\\000\\003\\027A ~\\204\\003\\212\\217\\342\\022X\\251\\007\\216\\343\\246\\036\\3720w\\2319^\\214\\031\\177\\273\\027\\315\\365\\346{\\231\\301\\324DG%M\\304J\\270\\236\\315\\013\\031\\324;\\362\\n\\257\\354$+\\336\\006\\375\\242K\\006\\200\\316]{\\307\\377P\\326\\363:@e\\006\\311\\336a\\024F\\3207\\302\\013\\250]f\\000eH\\\\h\\255\\277\\200\\236\\274\\354\\240\\371\\365\\006\\22376b\\205\\343\\0164\\235\\035\\353\\230\\254;b\\216w\\267\\016\\217\\022\\007\\213\\313\\245\\343\\372\\037~\\335\\017D\\305}}\\001|y\\300 \\036\\323\\032\\257\\035\\267\\357\\301\\016\\016\\027\\276\\003E&\\314\\024\\225\\257\\253\\027\\364\\360\\234>\\007\\364\\371X\\177\\014\\362\\202\\323'\\331\\375\\304?\\2661\\331\\266\\215c\\307\\306\\355\\021L\\\"\\006s\\177\\200\\375{\\340\\230\\304d\\3221\\207\\311\\234c\\036\\223y\\307\\032&k\\216\\024&)\\307.&\\273\\2167\\230\\274q\\374}\\004=\\315G\\224#\\234\\0106M\\317\\362\\333\\221Q$\\330\\343\\006\\363\\251\\341Bh\\273\\010\\250\\232)\\365\\226\\257V\\334\\325\\246\\364\\333_\\034\\001S\\256\\006\\013\\347\\341\\266[`\\310\\035-\\335\\266&\\352\\274>\\017(\\210\\350\\021 `\\346\\205A\\266:\\212]\\037\\265\\021\\035\\223\\037\\204\\320B\\262R^\\254\\330$\\252F\\003\\317\\352\\320\\345\\303\\033\\373\\353\\305T\\251\\316!\\214+\\010\\321B_\\3617\\346+\\353\\250|W\\275\\246\\317\\034n\\207\\204E\\207\\253hY\\367\\266\\267\\354\\200\\256\\352\\263`<\\247\\300\\212\\230-\\335-\\017\\203\\232\\362CuI\\177\\330\\322=;Z\\357\\235>\\224\\227\\302\\0335]\\333\\326\\267SH\\274\\035\\346\\333\\010'u/\\2756Z\\031j\\367\\245\\310\\022/\\303\\200\\240\\177w\\2654Q\\036)G+\\375\\325M}\\261\\255\\236\\nR\\353\\332\\250>\\212\\254\\364@'\\370A/\\206q\\307\\256\\352)sa\\307\\364w3f1]\\377\\356Q\\327a\\322*\\372\\\"\\353DG\\275\\343\\3617}vA_\\340\\313] :v\\364\\235g\\270\\324gH\\017R[\\311\\373H\\314\\2264T\\223H!\\331\\004\\231Y\\267\\326:\\372P\\177\\310\\306\\273_\\350\\026S\\365\\363=-\\273\\365k\\265\\247\\025O\\211\\227\\373+-\\370\\312\\255\\322Ny\\272\\034\\253\\274\\324\\203b\\327\\270\\317\\232\\206\\236\\244\\\"9\\372\\3471\\2317\\264J\\342\\343iL\\322\\206\\364\\377\\033Y\\356\\337v\\005\\023\\305>b\\257\\3454\\240\\226\\262\\231\\375\\371-\\223\\273e[\\271\\247\\3262\\271T\\010\\202\\021y\\2574Y\\316T\\356T\\273\\252}z\\010\\370\\321\\262\\276\\3145\\004\\240\\313\\327hP\\030\\023\\202d\\016-Q\\313:\\221\\212\\211j[\\303d\\315@\\016\\211%\\022\\273\\204\\034/&^\\373\\024&S\"\"\\366G\\230<\\262G1\\211\\332\\023\\230$\\300\\036\\201$c\\317b\\222\\265\\357\\030\\326\\311@\\321$\\232~\\227\\356B\\245\\355\\335\\360\\373.*#\\005\\334)\\234/\\236b.\\261\\371r\\020\\372\\376{\\365\\265\\376\\010U\\\"\\3759\\227\\325\\262s\\335\\\\~G\\321i\\364t\\031\\223e[\\n\\223\\224A\\006\\031Y\\266\\230+\\315.\\367aJLT.:\\232\\353\\r3\\226\\200\\201\\251\\305\\303\\035\\236\\352O\\237\\351\\317\\270\\312'\\033\\231\\024b\\360\\004\\223'\\306\\370\\231\\263\\2254\\334Z\\025\\000\\350\\230\\315\\372\\376F\\330?\\372\\201\\226\\226D\\353\\024(\\362S>\\005\\220\\347 Qq\\035\\365ne\\270\\022\\256\\376\\240\\317@\\217\\342z\\234\\217\\025\\221\\243\\007\\023OM\\304\\204l,\\257\\031kOW\\n\\3335\\035\\371\\374\\023\\362^\\371Ty\\250vB^.,\\027\\035EOi\\021\\314\\307\\261jO\\365\\236\\036\\006\\316\\004\\342\\211/\\032C}\\334O@\\374I\\356:i\\355K\\230,\\031\\364I3\\221\\0141\\242V\\231M\\321L\\364a\\342\\263/a\\262d\\3270\\321\\354IL\\222\\326LD\\356h\\177fL\\310\\301\\242\\031|\\320\\357\\256L7&\\207\\332\\311H2\\261\\361<|\\245/\\266\\\\>4\\345\\\"\\331)\\362t\\313M\\263\\021ew\\177\\376\\021\\275\\217\\353R\\265#z\\205\\2518\\013\\245\\215Jwe\\266:T\\365\\35030#\\2412\\030\\316\\r}\\003\\272\\311\\345>i84\\224\\024\\315\\\"+\\177\\rmjb<\\246\\304A\\2720\\206\\222\\214\\320\\307\\230<\\266\\257b\\262j\\337\\302d\\313\\032J\\3249\\355\\317\\215\\021\\275^45+7r\\216\\306\\032N\\375|\\026\\304tK\\235gC_\\200\\301\\005\\301\\002\\2104\\\"Y\\230li<\\260\\202\\33638\\246\\217\\201\\r\\304\\350\\342\\326\\001t\\206\\213\\200\\216\\363f\\2163\\307\\331\\302]\\260\\224\\303\\245\\263\\245\\347\\345\\024\\214\\306#}\\032\\204\\035o\\315K\\375%\\017\\277\\222\\361/\\257\\351\\313L\\221P=\\212\\311\\250\\335e\\027Y\\244~\\364'\\375\\247\\341R\\017kvEmW?m\\336J\\356)4\\235\\023\\262\\3325V\\307\\236\\337^\\037\\327\\307\\201\\367s\\035\\232\\246\\016qx\\020_w\\017)\\020\\013X\\223\\311\\205eQ)\\363]YF\\312\\210\\223\\231\\017\\221*\\031\\260O\\354\\215\\343\\266\\306'\\032c\\264\\271P\\351jK\\025G\\365\\317\\260\\302d\\r`\\242\\236\\036\\241\\021\\375\\357=704\\301\\020m-]\\206\\315\\233\\\"+#\\363\\266z\\227\\022p@&\\023>\\265p\\346\\236\\355\\331\\342\\335\\3220\\363U<\\257\\244\\252\\335\\325G\\372\\002\\030p`Kq\\325\\221t\\347)L\\246j&TC\\357\\240\\340\\204\\356x;\\261\\214,\\317\\020wDNcH\\035c\\366\\030&1\\273\\017\\275\\025>G\\022\\223\\244c\\313\\361\\356\\316\\207r\\254&\\323\\357\\021S\\r_\\242\\273\"\"\\246\\203\\03025\\204|8alH\\330\\276\\216\\311\\272\\375\\r&o\\354\\177c{\\376vx1\\361:\\2460\\231r<\\302\\344\\221c\\t\\223%\\307cG\\335\\274\\365<@\\206{\\274\\016\\377\\315F\\204i\\216-\\004\\352\\037z\\000x&\\0275\\246\\376'k\\r\\017\\352\\335!\\320\\212\\336\\017Eb\\023V\\321n+\\004\\037\\306\\203\\311\\017oE\\223\\350V\\340\\244\\320\\004\\340Y\\246\\242/\\363\\373\\311:\\353\\024\\346\\022\\013*\\375\\364s\\tm\\261\\235\\342|)\\310\\214\\356\\363\\325S\\325[\\244\\r\\201|\\342\\242\\262\\375\\200\\334M[\\275\\311\\364\\000\\224f\\326\\357\\206\\213!\\246\\301}:w/?^h\\210\\325\\306*\\333\\033\\3751\\014\\355\\216\\276#\\311s\\232\\360\\324d\\322I\\315\\325\\216:\\222\\233\\364~8\\3417\\232\\267K\\206t\\332\\3247w\\365]\\356\\005\\226c\\204\\275\\215\\254\\032f\\354\\177\\372\\301F=\\377\\313\\342zi\\271\\354(\\217Uz\\253?W]z\\200{\\346\\323h\\372\\032\\026\\267\\354\\r2\\303\\231\\0312\\033:VD\\235\\3740MN\\306\\223\\233-0\\\\\\262\\\\)\\242\\243\\272\\201\\026O\\035!\\341\\325\\230*,\\031{\\270^f\\345\\275}\\314\\r\\2040\\351\\247\\344\\n\\222W\\357\\236\\324\\221\\365\\247`\\346\\217\\331t\\0036\\366B\\177\\201j\\353\\341\\275\\263\\221j4\\200\\236\\021+h\\031f\\022\\274\\265n\\234\\034\\\\\\302\\177\\372y\\203\\326\\324\\331\\342\\363R\\252\\334]\\236\\255\\334\\255\\016W\\303\\3724o\\036\\327\\214IS\\220\\255\\t\\231\\316\\032\\3726\\004\\313\\307\\227\\353\\301\\000\\255c\\030\\nb\\206\\336\\031\\341i\\024\\307fD\\327\\003{\\325\\007\\377\\256t\\350\\3124[$\\005\\362\\237\\247\\372n\\227\\246\\233\\204\\327?`1d\\016\\036\\261\\347\\320\\177\\030d\\242\\322V\\276\\002|k\\332\\n\\252\\027\\242\\263O\\032\\2418f\\0247F\\233t\\002Vt\\307\\217\\371i!\\244\\002C\\220\\354\\030\\232y\\n\\346\\000\\362s\\026Cs/\\377\\240\\260\\212\\221\\217,\\252\\005\\3462Fc\\032\\361Jg\\371\\n\\277\\021\\205#\\207\\370AO\\277\\371\\342\\310Y\\206 \\375\\372H\\245\\2472Taf\\362\\264\\025_\\354\\306\\266\\234\\330[\\203A]\\315+\\371\\031\\214\\302-\\366\\030\\354\\210\\341\\247\\322%\\357J\\270Z\\354\\321\\257\\375Q\\236\\326\\377\\364U5=\\024\\326\\3033t?XMM\\3206\\316e\\021\\337\\225\\320e\\255$N\\0002\\241\\373\\030\\224\\204K\\215\\\"\\002\\217\\026\\206\\n\\256bg\\251C\\350\\0065\\350\\034\\213\\373\\342\\001\\352RGp\\036t\\344\\317\\002\\2338R\\230c1O$I\\365\\201?Y\\000\\226\\031\\213\\237\\033\\304\\031`8\\224\\020\\364\\203\\376\\303\\000\\013Lt\\000\\341`<\\202\\2657\\303\\272tJ?u\\205\\\"QM\\216\\rw\\364\\376\"\"\\255\\377\\035\\322C0\\261\\271\\213\\307R\\225\\357~\\304\\3420\\256E\\375X\\336\\304\\310a\\320\\312\\221\\035\\313\\\\\\260[\\357\\306v\\256S\\3030\\316g\\202O\\270\\372\\005\\253\\001}.\\252G\\267\\365mi{\\220<\\271L]\\236i#\\362\\23289~\\203\\230\\004\\215\\310c\\262\\370H\\231'\\257\\304+L^\\331_c\\362\\332>\\201\\352\\362\\204#\\204I\\010\\264f|\\300\\021\\305$\\352\\3200\\321\\034\\253\\216\\306\\226\\342\\305\\337\\365\\337\\221\\270$7\\306\\207-\\260\\017T\\266\\333Zb\\347\\313\\010\\\\#\\342\\213$d\\270\\221{\\216\\306\\325\\224\\031d\\224\\327\\331\\227\\227\\376\\320\\377\\300\\335:\\222\\207\\373}\\233\\216\\353 \\233\\345?\\252\\035\\355\\216z\\375\\372\\310k\\266\\003\\t\\327\\306\\364m\\334\\340$\\216=\\365\\205:azY\\231\\013\\231\\214~\\212L\\242\\220\\244\\000&\\001\\3734&\\323\\206\\357\\177\\r\\2235#$\\3519&\\317\\355\\273\\230\\354\\332_\\330\\033;\\324\\257\\374\\245\\377\\005\\374\\026w\\361I\\336\\240\\367E\\020[\\247/?\\254\\274\\320\\247\\203\\373\\216s|?\\304y\\274\\377\\274~\\236\\207\\307\\365\\310\\360F+\\364?\\352\\2630\\354\\334A{p\\370\\010)n\\262W\\204B\\267<\\330m\\217\\021\\263\\365\\004\\223'FX>\\205n\\221\\313\\216\\242\\027\\310\\262$+\\330\\357h\\342\\206\\372sA_x(\\331S\\037\\271p\\210\\223\\\"RV\\332\\212\\036\\202\\031\\370P\\177\\270\\250/\\002\\373\\000\\014\\231T$/\\257\\221=CTDR\\332\\\\WA\\255\\330\\226\\255\\237&\\320\\253\\206\\313\\241u\\016\\3363\\005\\265Q\\007\\327\\253O\\365\\371%\\266\\023\\243\\351\\376.\\345\\340\\335]\\213z\\000\\2307\\\"\\231\\255\\233sO\\261ix\\264\\037\\372\\265\\213\\311\\256\\341\\240'O\\007\\205uL\\330\\353V\\277\\037.~\\322\\336\\277O\\210\\2308\\310I=\\t\\242\\006UE\\3465!\\345_\\336\\336&3@9\\210\\212\\274\\331f\\277\\331V\\025\\217\\275n\\360A\\006\\367\\203\\306b\\330\\354\\000i\\337c\\335\\\\\\347d\\270j\\031\\247\\260\\310\\244i\\333^la\\300.\\201\\016!\\351\\311\\037\\302\\321\\343\\265\\321^\\007\\255q\\277\\322C\\357\\267\\323\\230\\3268\\211S\\321$$\\332\\2441z\\331`\\355\\345\\255\\272|\\270\\350o\\272\\210p`\\250^\\263\\020\\266\\216\\232X;\\n\\357l\\301\\004\\357|\\240U,\\314\\215\\303\\265\\212\\233\\004\\2354\\013T=\\310\\367\\2358\\330\\300c\\033O1\\342|\\333r+\\325`\\362\\220\\334s@\\246\\334C\\207\\246\\255\\376\\352u]\\264\\310?o\\332u\\273\\177x0o+\\252\\223\\314LZ\\264\\223\\2754\\007iv\\237\\276\\375\\255\\230\\326{\\315\\032\\213q\\035\\356\\264n\\351io\\240:\\233\\276\\342:\\217\\335\\2416\\353\\360\"\"\\274\\306\\355\\035\\203\\201\\033\\237N\\025\\356\\200^y\\212\\261\\352\\371J\\260\\222\\251\\376\\256\\317\\315\\353\\363<\\016\\0169\\205\\236\\335\\241Y\\327W\\354:\\200\\007\\310/`KxM\\317\\025\\230aa\\024\\313\\3722\\217@\\223\\344\\330H\\315\\361\\002\\177\\344;p-\\363\\372\\201\\357e\\216\\001\\366\\323j9S\\232\\345L\\0305^n\\243\\201\\276\\227S\\370\\333/\\177\\354:jc\\366\\\"\\320S\\273[\\237?t\\340\\336\\366\\017\\264\\333\\213\\246\\201J\\215\\271\\265\\340\\001\\374\\250\\027l3G4\\274\\203\\353\\n\\211F\\376\\305\\203ko\\275p\\0342\\364\\021P\\024\\301\\262\\224<\\231\\206\\t\\317b9\\332\\354I\\223\\245\\324i\\346\\033\\204a\\347\\207\\275$\\353\\266S\\014\\014~\\344\\033\\232\\372c\\205\\227\\374\\366{\\333T\\205G\\017\\\\.u\\226m\\345\\213\\345\\325\\312Du\\244\\032\\325\\203m\\262\\037\\351\\250\\2016{\\325\\344\\\\\\006PWxD,\\n\\013\\3462\\022\\217^x\\217\\372\\033\\013R\\025\\327\\265\\200\\306x\\2576\\353\\243k\\373?\\256\\376Mq\\223\\003\\340\\014fI\\235\\014\\276\\3741a\\312\\323x\\312\\001X:|\\334\\343u\\262\\262\\315\\312\\233\\304\\266\\315\\352\\263\\300\\224a\\000\\270}\\221\\251\\217Y\\373\\257\\027\\366[\\332\\357\\362\\231;\\342j\\376ghw\\023\\266\\314-\\362\\266\\202|\\314\\203;\\004a\\373\\351\\333\\335\\344$\\r\\3207\\321\\335j\\304\\206\\313\\261\\024\\362j\\340\\343\\372\\263\\241>}tf\\023\\366\\016\\034\\353\\300 q\\323\\336\\254]\\367\\377\\014\\330\\376\\031\\214\\270\\261bo\\351g\\266\\013l\\275\\262\\\\uT\\275Lr\\203<b'ia\\344\\212\\274Zl\\222\\007\\0219a\\373j\\261\\347\\363\\265\\273\\215\\020\\201\\366W\\337\\305\\330\\200O\\330\\366\\326\\2525h\\001\\007F&\\313\\207\\237\\211Z\\366'ouc\\371\\002\\023\\363}\\274?\\007Y~\\2079!\\233\\250\\372\\240i\\201\\240j+\\272}\\276\\376`\\261\\377C\\361\\020\\r\\317\\206j\\270\\n/\\005B|r\\2747Q\\244@\\216\\203\\352i\\372A\\345\\220'y;\\311C[\\275\\226\\365\\351\\361\\336L\\341\\204I\\311=T\\362f4\\231\\300\\255\\200R\\276\\037\\242^\\r\\375\\217\\267\\007\\030\\356w\\331\\213`\\022:\\241\\377\\277\\320\\257\\332\\215ch\\337\\301$\\206n\\037\\356\\006\\261\\216\\367\\336\\036\\366\\201\\213\\237\\202\\227/\\362D\\212R;\\374u\\r\\332\\367\\326\\336\\202\\337\\201\\035\\006#\\t\\210M\\222\\005\\244=\\310\\304\\026\\305$jDG\\323\\242\\026\\355\\216j\\270c\\\\^\\371\\243\\365\\360Q\\\\\\353\\033u\\2700q9\\374\\230\\370\\035\\0171y\\350x\\212\\311S\\014\\203\\375\\342\\213-\\3076&\\333\\216\\224CD\\260\\260*\\010h\\276\\3749\\320\\374\"\"\\236\\364s\\030\\350\\244\\2453y\\263\\231\\317^Gi\\217#\\237\\030\\005\\037\\266\\033\\030T\\013\\020\\327\\246\\346O\\\"C\\026\\325\\264\\037\\204\\260 \\257#S\\310\\005\\035\\001bb\\241.\\310v\\361\\321'\\356\\376\\001\\273\\273\\205]\\2303\\372\\014?\\236\\200[\\231Y=[\\353\\035\\224\\017\\271\\223\\305\\317\\026&[\\266\\227\\230\\2744\\366\\030\\230+\\207lQ\\375\\201\\275\\245\\247\\354\\360\\373>X\\337\\363\\003w\\367\\203Z\\t\\352\\260ib\\267\\261\\271\\215zNg\\360\\312'\\301\\274\\261\\265\\364p~\\212\\t\\337q\\210\\323\\235l/y\\326\\313\\361%\\264()o1U\\352\\347\\371\\243\\245O\\334s:{D\\356\\373\\201\\347\\215\\200y\\017\\242\\322\\2649IZ\\3126\\262\\274\\341\\224\\366\\324\\322\\336\\003\\332EcR8\\035\\374S\\353\\204<\\260\\3575\\313\\240\\264\\236\\324\\034\\r0G\\301V\\346.\\356&q\\023=\\207\\0245!/P\\313^\\2466\\366\\031\\021\\353\\247M\\032\\024XC\\347]>\\252\\217\\250\\350\\273\\372QG\\312\\222\\300\\023\\367\\0006>\\307s\\201y\\323\\200\\002\\000\\207|\\354i\\2527<\\367\\226S\\362\\331\\334j\\376\\001\\222g\\347\\336Wx4\\3426;\\356\\022OD;\\334\\326\\0374\\177\\245\\34633\\201\\246\\355\\301]\\240\\223\\\"\\256}T3\\207J\\247Ju\\013\\357h\\372:\\n\\236\\342\\\"3!{*\\367\\252S\\214\\256\\370\\3269\\036\\304MZ5q\\323\\206G-H\\206\\357\\325\\217jd\\227|\\372\\220\\030t\\327\\250\\271\\nzX\\241\\301\\234#6:\\017L\\016#\\243\\335S\\346aQL\\nl7Z\\270\\373(d\\267\\025\\343\\240\\2423'\\254\\207\\371$&\\321m\\256\\257\\t\\276\\375\\213\\227>\\2621m\\205#m\\262\\306\\360\\235\\357x\\274\\032\\263\\276\\033\\356\\260\\235\\264\\265\\\\\\032x\\337\\366\\r\\327O\\0374Q\\273\\013\\013\\305\\rf\\352\\rU<\\342\\362\\001`\\212k8\\262\\235\\355n`\\224~L\\263n\\326O\\027\\364X\\\\,\\304\\212/\\231\\345\\257T\\026\\304e\\031\\020I\\234'5\\334h*\\372(p=\\363\\352G\\265l\\2704\\2156\\365\\t:\\300U\\3146j\\345f\\335\\tV\\262\\312 \\273(h\\252\\220\\212\\334*\\246\\220:u&7\\233\\277\\207\\355\\263X\\354Yv\\236\\351t\\353kt\\\"\\371G\\215\\022\\236\\244W{\\0309.h\\334*\\354\\226\\216\\226o\\225w*\\323\\225\\230\\264>\\013\\232b#>1\\336`\\r\\343\\243\\033&oko\\335\\256&\\374\\353\\260\\333\\325rO\\217aYlS\\254\\003\\367\\356\\223\\262e~\\250A\\330\\202v\\351\\362G6\\246-C\\347\\265\\034x\\301g?M\\263\\306\\373\\323\\232\\230+\\357\\333\\276\\201z\\306Y\\257\\235v\\320\\002$7\\301\\310\\0201?\\220\\\",j_\\276\\362\\221\\215iKY>.\\257\\206r\\236D4%/>N\\325\\237\\225x\\245\\367\\2438\\023\\035\\262\\3027\\305p~$\"\"\\346\\233\\204\\201\\213K\\347\\322\\024\\220\\233K\\026\\215|FG\\343\\323\\037\\245\\030\\030\\350\\323\\345\\217\\357\\323A&i\\303~\\320\\034\\226\\327 }\\255#\\262\\336\\177\\267J\\rQ\\034\\264%\\245\\207\\202n\\270\\341\\\\kE\\266B\\266\\271\\367\\374\\200\\250\\223\\367\\376\\034H\\033f\\3174\\305\\300\\360\\345\\001\\212\\2246CG\\004c\\244\\267\\357\\243\\206\\273M\\327\\323\\200\\034\\267\\304QH\\226\\250\\274\\220\\350\\257\\337\\245\\rM\\034<\\334&\\276\\317\\226\\244\\353\\357\\245\\342\\313;\\014\\032F5\\223\\337\\214\\366\\251\\264\\374,B\\315^\\243\\377\\340\\300\\231v\\235-\\342)P\\240q6p,\\222\\303\\241\\241{^>\\245\\201>&A\\336&\\362\\262\\322~\\236yL\\346\\233\\034\\342\\321$:\\362\\363`\\252-\\r\\346\\245\\376\\360\\261\\376\\230\\317\\003\\250\\017\\270I#\\335\\234f\\0049\\243hi]v\\305\\312;L\\315xy\\346\\231$\\027\\rm\\202\\243\\035P&ea-\\366\\250\\275\\265\\232\\364\\271N3\\352\\371\\217\\3162\\\"\\305\\\\>\\244\\212f$\\221\\030!\\214\\216\\334\\240\\315\\203O\\355\\255W\\302>\\017\\336~\\253?\\325\\253\\301\\027\\205`2\\002\\225\\361\\0108\\311\\205\\322P\\025\\224\\017V$*\\223\\267Z\\232\\326\\014.\\037\\326\\034\\007E\\323s\\001\\223\\005\\203\\312L\\244a-\\366\\r{\\353 \\302\\317\\203;6p\\222\\357\\254\\341BI\\215\\363\\270\\201\\277\\234\\210\\255\\3416}Y\\001 \\204\\021[#\\366O>\\3039L\\346\\214\\023\\321L\\266V\\027\\261\\364\\371\\021\\205g\\260\\327\\020\\031\\0065\\271\\212_\\227.\\224]x\\202\\177e\\227\\035%\\004x\\342~:\\260}@\\313hd\\325\\313{9\\tW\\362\\322\\232\\254\\231\\022'#\\0174-1\\321v^\\302\\225\\311\\311\\330\\251\\216\\232\\275.Z\\352\\355\\253\\327\\377\\001\\332\\206K?\\327\\n\\202\\006\\376\\231E}\\036j\\343V\\0077\\262\\271?Z\\216A\\241\\251Ik1\\244Z\\310\\256z\\232\\232\\262\\206!\\357\\351\\243u^\\242-\\342gt\\n&\\235\\275\\267eo\\355\\014\\372<\\250kw\\253S\\315*^s\\177>\\36149\\256N&;Z\\352 \\267>\\3614Z\\313$z#\\236f\\272\\365[z\\363>\\017\\246\\270\\343W$\\261z_\\357\\244>\\007X\\342^\\000\\356ok\\262\\002F\\253\\036\\204%y\\311S\\026\\000\\36278\\211\\274(\\250\\200\\260djd\\264\\253\\270\\336\\341\\375_|1C\\375\\017\\276\\227A\\336r\\371\\223hDY\\264RDS\\322da\\3548\\314U{}T\\363\\177\\301\\306z>;\\023\\243\\255\\240\\346'^\\031K\\243\\365u\\322\\315\\032nZ_\\376?\\301\\275\\230\\003\\\\\\302X\\275gyC_X\\322\\227\\270\\327\\003\\314r\\260\\222\\370\\272\\201\\034\\212%\\373\\024\\310\\277L\\250\\\"\\245V>\\230I\\346\\376\\264PK\\032Y+\\373\\262\"\"\\351~\\213\\317u^t\\307\\177tZ4\\261{3\\202\\201-\\354\\323\\371\\220$.\\211\\304\\350DS:?b\\275\\376\\230\\350\\377\\344X\\337\\256\\377\\350P_\\262\\236\\344H\\010\\022\\000\\244\\311\\022\\241\\231\\010#\\353\\251>`\\366\\363\\343\\355\\327\\322v-\\336\\032|/\\033&(\\010M\\276\\213\\032\\275\\347\\372+.4\\345\\210f\\331\\335\\323\\360t\\022s\\271\\224\\221\\234\\0344C\\332?E\\342\\221\\3204\\005\\000\\221\\\\\\375\\227\\270\\227W\\016w7j\\343\\355y/\\331\\367U\\315\\035\\3442sj\\374\\001aa\\215c\\205\\317P\\262\\213\\210CY\\307,\\3349\\224\\366\\213\\237\\031oy\\310\\251\\024!*\\0075\\265a\\316\\222\\013\\245\\261uF\\353\\000\\374\\333\\343+\\321\\303\\035\\231\\226\\235j\\375\\035\\0173\\262\\247n\\271\\\"\\312\\207\\306\\212u\\032\\374l;\\256\\3718\\320\\034j#\\366\\310d8u\\347\\227Fk\\317\\256\\032>t\\212j\\331\\023\\351h\\3216\\202E\\211\\276\\032\\177\\266\\201\\372\\305iH[=\\\\\\032jyN\\352{m\\210\\021\\234\\361\\253k\\207\\204\\360\\272\\003\\264[n\\215okc\\211l\\255\\264\\212\\327\\023\\002\\224\\241C\\237o\\207\\377\\373\\354\\217\\021\\243\\231\\214\\023\\335\\216\\203\\204?Z\\035\\022Ou\\303\\343\\356\\360\\353\\266x\\316\\034\\373\\356:\\213\\037\\300\\002g\\311,\\226`o[?\\311B\\232\\336:\\350\\243\\274\\004\\346g\\323\\235\\310\\261\\023\\000\\217\\262\\013\\346\\007\\267\\256\\340\\347i\\273\\371\\2276\\307sCz\\367\\305\\202\\267\\004m9\\276\\267\\300q\\365\\325\\277\\333t-\\307\\352\\373:\\327%\\334;^\\274\\303>\\220K\\307\\335\\375XX+\\316\\362\\257\\374\\361\\226^\\306/r\\t_\\373<\\231\\263\\345.\\345\\322\\210Y\\270\\322\\3154\\301_K?\\227\\306\\313C\\314\\244\\205\\266\\237\\330\\213\\361\\021\\020\\332\\376M\\216}\\307\\366\\327\\334/\\271i\\374\\264\\357\\264\\321$\\017\\014\\3046\\266v\\216\\035\\364w\\206}1\\223\\212\\323F\\025\\366\\3340\\373D'\\006O\\345\\\\\\370!O\\036\\351\\306\\317\\232\\271\\362Wy\\373\\243>\\234\\306\\317\\376\\232nk=T:;\\200\\231\\005D\\035\\344=k\\274\\253Q\\340\\214K\\\\(X\\341)W?q\\350\\361r\\351D9QU\\016)\\000\\231&\\0011\\32164N2\\006[i\\234\\\"z\\036q\\364\\220\\225@\\272\\232\\305\\226\\207?y\\350\\356\\233r\\262\\032\\341{\\322[}\\223\\375\\003\\003z\\033*7\\024\\273+\\237\\207(\\373h\\310\\005\\370\\002\\223\\027\\366\\021\\334\\3161\\342\\240\\363\\020=\\230x\\034aL\\302\\216\\010&\\021\\343\\203n\\233\\230l:\\022\\230$\\034IG\\003\\245h\\211K}Ke\\034\\374\\344\\004\\371m\\371MUm\\205\\335\\017$Nb\\315D5\\262G_\\376\\332\\200\\2543\\222N\\277\"\"\\201\\311F\\315\\361z\\204k\\372x^\\000\\223\\200c\\032\\223iG\\320\\321@A\\000\\211\\375\\271\\203\\254\\017\\367x6bMD\\252\\362\\356ry\\311\\274\\325\\002\\035\\2714Z-\\320\\t\\356Y\\024S\\273\\354\\313\\307xt\\353\\376\\327\\247\\230\\240\\300\\260\\272\\377\\237\\362o\\031\\000H\\242\\217\\t\\343\\316s\\271\\027\\005\\376\\215\\332\\027\\302\\374\\353\\375\\354\\324\\203|\\357u\\375\\031\\216\\037\\310\\343\\250'\\255\\326\\334hj\\312s\\222\\004\\006\\321\\017\\361?Z\\226\\334\\306d\\333\\372J\\r\\035\\r*\\033O\\377\\017\\013\\0140\\007\";\n    PyObject *data = __Pyx_DecompressString(cstring, 14132, 1);\n    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)\n    const char* const bytes = __Pyx_PyBytes_AsString(data);\n    #if !CYTHON_ASSUME_SAFE_MACROS\n    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }\n    #endif\n    #else /* compression: none (49836 bytes) */\nconst char* const bytes = \": 3Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Dashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageNoneNot Supported (TA_NOT_SUPPORTED)Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is over volumeOutput scale same as inputOutputs:Parameters:Pattern (Bool)Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)\\n    This is a pythonic wrapper around TALIB's abstract interface. It is\\n    intended to simplify using individual TALIB functions by providing a\\n    unified interface for setting/controlling input data, setting function\\n    parameters and retrieving results. Input data consists of a ``dict`` of\\n    ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\\n    array for each of open, high, low, close and volume. This can be set with\\n    the se\"\"t_input_arrays() method. Which keyed array(s) are used as inputs when\\n    calling the function is controlled using the input_names property.\\n\\n    This class gets initialized with a TALIB function name and optionally an\\n    input_arrays object. It provides the following primary functions for\\n    setting inputs and retrieving results:\\n\\n    ---- input_array/TA-function-parameter set-only functions -----\\n    - set_input_arrays(input_arrays)\\n    - set_function_args([input_arrays,] [param_args_andor_kwargs])\\n\\n    Documentation for param_args_andor_kwargs can be seen by printing the\\n    Function instance or programmatically via the info, input_names and\\n    parameters properties.\\n\\n    ----- result-returning functions -----\\n    - the outputs property wraps a method which ensures results are always valid\\n    - run([input_arrays]) # calls set_input_arrays and returns self.outputs\\n    - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\\n    Too many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving Average] )\\n\\n.?,  ()(    [=add_note(any ndarray)%(display_name)s (%(group)s)\\n (expected  function failed with error code , got input array has wrong dimensionsinput array lengths are differentinput array type is not double[input_arrays]input_arrays parameter missing required data keyinteger (values are -100, 0 or 100)numpy._core.multiarray failed to importnumpy._core.umath failed to import%s(%s)    %sstream_%stalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitalib.collectionstalib.mathtalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingACCBANDSACOSADADDADOSCADXADXRALLAPOAROONAROONOSC__ARRAY_TYPESASINATANATRAVGDEVAVGPRICEAllCandleSettingsBBANDSBETABOPBodyDojiBo\"\"dyLongBodyShortBodyVeryLongCCICDL2CROWSCDL3BLACKCROWSCDL3INSIDECDL3LINESTRIKECDL3OUTSIDECDL3STARSINSOUTHCDL3WHITESOLDIERSCDLABANDONEDBABYCDLADVANCEBLOCKCDLBELTHOLDCDLBREAKAWAYCDLCLOSINGMARUBOZUCDLCONCEALBABYSWALLCDLCOUNTERATTACKCDLDARKCLOUDCOVERCDLDOJICDLDOJISTARCDLDRAGONFLYDOJICDLENGULFINGCDLEVENINGDOJISTARCDLEVENINGSTARCDLGAPSIDESIDEWHITECDLGRAVESTONEDOJICDLHAMMERCDLHANGINGMANCDLHARAMICDLHARAMICROSSCDLHIGHWAVECDLHIKKAKECDLHIKKAKEMODCDLHOMINGPIGEONCDLIDENTICAL3CROWSCDLINNECKCDLINVERTEDHAMMERCDLKICKINGCDLKICKINGBYLENGTHCDLLADDERBOTTOMCDLLONGLEGGEDDOJICDLLONGLINECDLMARUBOZUCDLMATCHINGLOWCDLMATHOLDCDLMORNINGDOJISTARCDLMORNINGSTARCDLONNECKCDLPIERCINGCDLRICKSHAWMANCDLRISEFALL3METHODSCDLSEPARATINGLINESCDLSHOOTINGSTARCDLSHORTLINECDLSPINNINGTOPCDLSTALLEDPATTERNCDLSTICKSANDWICHCDLTAKURICDLTASUKIGAPCDLTHRUSTINGCDLTRISTARCDLUNIQUE3RIVERCDLUPSIDEGAP2CROWSCDLXSIDEGAP3METHODSCEILCMOCORRELCOSCOSHCandleSettingTypeDEMADIVDXDataFrameDotEMAEXPEqualFLOORFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode___Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestrFunction.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHT_DCPERIODHT_DCPHASEHT_PHASORHT_SINEHT_TRENDLINEHT_TRENDMODEHighLowHistogramIMI__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTSKAMALINEARREGLINEARREG_ANGLELINEARREG_INTERCEPTLINEARREG_SLOPELNLOG10LineMAMACDMACDEXTMACDFIXMAMAMAVPMAXMAXINDEXMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMFIMIDPOINTMIDPRICEMINMININDEXMINMAXMINMAX\"\"INDEXMINUS_DIMINUS_DMMOMMULTNATRNONENearOBVOrderedDict__PANDAS_DATAFRAME__PANDAS_SERIESPLUS_DIPLUS_DM__POLARS_DATAFRAME__POLARS_SERIESPPO__Pyx_PyDict_NextRefROCROCPROCRROCR100RSIRangeTypeRealBodySARSAREXTSINSINHSMASQRTSTDDEVSTOCHSTOCHFSTOCHRSISUBSUMSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsT3TANTANHTA_ACCBANDSTA_ACOSTA_ADTA_ADDTA_ADOSCTA_ADXTA_ADXRTA_APOTA_AROONTA_AROONOSCTA_ASINTA_ATANTA_ATRTA_AVGDEVTA_AVGPRICETA_BBANDSTA_BETATA_BOPTA_CCITA_CDL2CROWSTA_CDL3BLACKCROWSTA_CDL3INSIDETA_CDL3LINESTRIKETA_CDL3OUTSIDETA_CDL3STARSINSOUTHTA_CDL3WHITESOLDIERSTA_CDLABANDONEDBABYTA_CDLADVANCEBLOCKTA_CDLBELTHOLDTA_CDLBREAKAWAYTA_CDLCLOSINGMARUBOZUTA_CDLCONCEALBABYSWALLTA_CDLCOUNTERATTACKTA_CDLDARKCLOUDCOVERTA_CDLDOJITA_CDLDOJISTARTA_CDLDRAGONFLYDOJITA_CDLENGULFINGTA_CDLEVENINGDOJISTARTA_CDLEVENINGSTARTA_CDLGAPSIDESIDEWHITETA_CDLGRAVESTONEDOJITA_CDLHAMMERTA_CDLHANGINGMANTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHIGHWAVETA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHOMINGPIGEONTA_CDLIDENTICAL3CROWSTA_CDLINNECKTA_CDLINVERTEDHAMMERTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLLADDERBOTTOMTA_CDLLONGLEGGEDDOJITA_CDLLONGLINETA_CDLMARUBOZUTA_CDLMATCHINGLOWTA_CDLMATHOLDTA_CDLMORNINGDOJISTARTA_CDLMORNINGSTARTA_CDLONNECKTA_CDLPIERCINGTA_CDLRICKSHAWMANTA_CDLRISEFALL3METHODSTA_CDLSEPARATINGLINESTA_CDLSHOOTINGSTARTA_CDLSHORTLINETA_CDLSPINNINGTOPTA_CDLSTALLEDPATTERNTA_CDLSTICKSANDWICHTA_CDLTAKURITA_CDLTASUKIGAPTA_CDLTHRUSTINGTA_CDLTRISTARTA_CDLUNIQUE3RIVERTA_CDLUPSIDEGAP2CROWSTA_CDLXSIDEGAP3METHODSTA_CEILTA_CMOTA_CORRELTA_COSTA_COSHTA_DEMATA_DIVTA_DXTA_EMATA_EXPTA_FLOOR__TA_FUNCTION_NAMES__TA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HT_DCPERIODTA_HT_DCPHASETA_HT_PHASORTA_HT_SINETA_HT_TRENDLINETA_HT_TRENDMODETA_IMITA_INPUT_FLAGSTA_InitializeTA_KAMATA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_INTERCEPTTA_LINEARREG_SLOPETA_LNTA_LOG10TA_MATA_MAC\"\"DTA_MACDEXTTA_MACDFIXTA_MAMATA_MAVPTA_MAXTA_MAXINDEXTA_MEDPRICETA_MFITA_MIDPOINTTA_MIDPRICETA_MINTA_MININDEXTA_MINMAXTA_MINMAXINDEXTA_MINUS_DITA_MINUS_DMTA_MOMTA_MULTTA_NATRTA_OBVTA_OUTPUT_FLAGSTA_PLUS_DITA_PLUS_DMTA_PPOTA_ParamHolderAllocTA_ParamHolderFreeTA_ROCTA_ROCPTA_ROCRTA_ROCR100TA_RSITA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SINTA_SINHTA_SMATA_SQRTTA_STDDEVTA_STOCHTA_STOCHFTA_STOCHRSITA_SUBTA_SUMTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_TANTA_TANHTA_TEMATA_TRANGETA_TRIMATA_TRIXTA_TSFTA_TYPPRICETA_ULTOSCTA_VARTA_WCLPRICETA_WILLRTA_WMATEMATRANGETRIMATRIXTSFTYPPRICEULTOSCVARWCLPRICEWILLRWMAaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshort__all__appendargargsasciiastypeasyncio.coroutinesavgperiodbbegidxbytes2str__call____call_function__check_opt_input_value__class_getitem__cline_in_tracebackclonecloseclose_datacollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdisplay_name__doc__docsdocumentationemptyendidxenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodflagflagsflags_lookup_dict__func__func_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctions_get_defaults_and_docs__get_flagsget_input_arraysget_input_names__get_opt_input_valueget_parameters__getitem__groupgroupshelphighhigh_dataholderiididximport_errorinindexinfo__init__input_arraysinput_nameinput_namesinput_price_series_names__input_price_series_namesinteger_is_coroutineis_emptyitemskeykeyskwargslengthlocal__localloglookback_lookuplowlow_datalower__main__mathmatypemaxmax_intmaximummaxperiod__metaclass__minmin_intminperiodmissingmissing_keys__module____mro_entries__msgnname__name__nannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_dataoptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupout\"\"begidxoutfamaoutfastdoutfastkoutinphaseoutintegeroutinteger_dataoutleadsineoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutminoutminidxoutminidx_dataoutnbelementoutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkpandasparamparam_nameparametersparamspenetrationperiodperiodsperiods_datapolarspop__prepare__priceprice0price1price_seriesprice_series_name_valuespricesproperty__qualname__rangetyperealreal0real0_datareal1real1_datareal_datareplace__repr__resultsretretCoderet_coderunsschemaselfseriesset_function_argsset_input_arraysset_input_names__set_name__set_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstartvalue__str__str2bytesstream_ACCBANDSstream_ACOSstream_ADstream_ADDstream_ADOSCstream_ADXstream_ADXRstream_APOstream_AROONstream_AROONOSCstream_ASINstream_ATANstream_ATRstream_AVGDEVstream_AVGPRICEstream_BBANDSstream_BETAstream_BOPstream_CCIstream_CDL2CROWSstream_CDL3BLACKCROWSstream_CDL3INSIDEstream_CDL3LINESTRIKEstream_CDL3OUTSIDEstream_CDL3STARSINSOUTHstream_CDL3WHITESOLDIERSstream_CDLABANDONEDBABYstream_CDLADVANCEBLOCKstream_CDLBELTHOLDstream_CDLBREAKAWAYstream_CDLCLOSINGMARUBOZUstream_CDLCONCEALBABYSWALLstream_CDLCOUNTERATTACKstream_CDLDARKCLOUDCOVERstream_CDLDOJIstream_CDLDOJISTARstream_CDLDRAGONFLYDOJIstream_CDLENGULFINGstream_CDLEVENINGDOJISTARstream_CDLEVENINGSTARstream_CDLGAPSIDESIDEWHITEstream_CDLGRAVESTONEDOJIstream_CDLHAMMERstream_CDLHANGINGMANstream_CDLHARAMIstream_CDLHARAMICROSSstream_CDLHIGHWAVEstream_CDLHIKKAKEstream_CDLHIKKAKEMODstream_CDLHOMINGPIGEONstream_CDLIDENTICAL3CROWSstream_CDLINNECKstream_CDLINVERTEDHAMMERstream_CDLKICKINGstream_CDLKICKINGBYLENGTHstream_CDLLADDERBOTTOMstream_CDLLONGLEGGEDDOJIstream_CDLLONGLINEstream_CDLMARUBOZUstream_CDLMATCHINGLOWstream_CDLMATHOLDstream_CDLMORNINGDOJISTARstream_CDLMORNINGSTARstream_CDLONNECK\"\"stream_CDLPIERCINGstream_CDLRICKSHAWMANstream_CDLRISEFALL3METHODSstream_CDLSEPARATINGLINESstream_CDLSHOOTINGSTARstream_CDLSHORTLINEstream_CDLSPINNINGTOPstream_CDLSTALLEDPATTERNstream_CDLSTICKSANDWICHstream_CDLTAKURIstream_CDLTASUKIGAPstream_CDLTHRUSTINGstream_CDLTRISTARstream_CDLUNIQUE3RIVERstream_CDLUPSIDEGAP2CROWSstream_CDLXSIDEGAP3METHODSstream_CEILstream_CMOstream_CORRELstream_COSstream_COSHstream_DEMAstream_DIVstream_DXstream_EMAstream_EXPstream_FLOORstream_HT_DCPERIODstream_HT_DCPHASEstream_HT_PHASORstream_HT_SINEstream_HT_TRENDLINEstream_HT_TRENDMODEstream_IMIstream_KAMAstream_LINEARREGstream_LINEARREG_ANGLEstream_LINEARREG_INTERCEPTstream_LINEARREG_SLOPEstream_LNstream_LOG10stream_MAstream_MACDstream_MACDEXTstream_MACDFIXstream_MAMAstream_MAVPstream_MAXstream_MAXINDEXstream_MEDPRICEstream_MFIstream_MIDPOINTstream_MIDPRICEstream_MINstream_MININDEXstream_MINMAXstream_MINMAXINDEXstream_MINUS_DIstream_MINUS_DMstream_MOMstream_MULTstream_NATRstream_OBVstream_PLUS_DIstream_PLUS_DMstream_PPOstream_ROCstream_ROCPstream_ROCRstream_ROCR100stream_RSIstream_SARstream_SAREXTstream_SINstream_SINHstream_SMAstream_SQRTstream_STDDEVstream_STOCHstream_STOCHFstream_STOCHRSIstream_SUBstream_SUMstream_T3stream_TANstream_TANHstream_TEMAstream_TRANGEstream_TRIMAstream_TRIXstream_TSFstream_TYPPRICEstream_ULTOSCstream_VARstream_WCLPRICEstream_WILLRstream_WMAsys_ta_check_success_ta_func_unst_ids_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdown__ta_version__tabletalib._ta_lib__test__threadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytype_type__unicode__updateupdate_infouppervaluevalue_rangevaluesversionvfactorvolumevolume_data\\200\\001\\34001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\"\"\\026\\220q\\230\\001\\330\\004\\021\\220\\021\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S`\\320`a\\320am\\320mn\\320n}\\320}~\\320~\\177\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\34001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S`\\320`a\\320am\\320mn\\320n}\\320}~\\320~\\177\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\34001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0337\\260r\\270\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021$\\240B\\240d\\250)\\260;\\270d\\300&\\310\\001\\310\\031\\320R_\\320_`\\320`l\\320lm\\320m|\\360\\000\\000}\\001H\\002\\360\\000\\000H\\002O\\002\\360\\000\\000O\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002W\\002\\330\\004\\025\\220Q\\320\\026,\\250A\\330\\004\\013\\2101\\200\\001\\3400H\\320Hb\\320b|\\320|}\\3600\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\017\\210q\\330\\004\\017\\210q\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S`\\320`o\\320o~\\360\\000\\000\\177\\001N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002[\\002\\360\\000\\000[\\002\\\\\\002\\360\\000\\000\\\\\\002k\\002\\360\\000\\000k\\002l\\002\\360\\000\\000l\\002w\\002\\360\\000\\000w\\002x\\002\\360\\000\\000x\\002y\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\210;\\220a\\200\\001\\340/0\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\024\\220A\\330\\004\\022\\220!\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320Ra\\320ab\\320bn\\320no\\320o~\\320~\\177\\360\\000\\000@\\002J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002[\\002\\360\\000\\000[\\002\\\\\\002\\360\\000\\000\\\\\\002]\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\340/0\\360&\\000\\005\"\"\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320R_\\320_`\\320`l\\320lm\\320m|\\320|}\\320}~\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\34012\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\035\\230b\\240\\006\\240h\\250b\\260\\004\\260F\\270(\\300\\\"\\300D\\310\\014\\320Ta\\320ab\\320bn\\320no\\320o~\\320~\\177\\360\\000\\000@\\002A\\002\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\2101\\200\\001\\340\\004\\017\\320\\017#\\2401\\330\\004\\013\\2101\\200\\001\\360\\014\\000\\005\\022\\320\\021+\\2501\\320,>\\270a\\320?O\\310u\\320TU\\320UV\\330\\004\\025\\220Q\\320\\0263\\2601\\340\\004\\013\\2109\\220A\\220T\\230\\021\\330\\004\\013\\2104\\210q\\220\\003\\2201\\220H\\230F\\240!\\340\\004\\007\\200w\\210c\\220\\025\\220d\\230%\\230x\\240x\\250y\\270\\001\\330\\010\\017\\210t\\2201\\220C\\220q\\230\\001\\340\\004\\005\\330\\010\\020\\220\\001\\330\\010\\021\\220\\033\\230A\\230T\\240\\030\\250\\021\\200\\001\\340#;\\2701\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\230?\\250\\\"\\250M\\270\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\026\\220r\\230\\024\\230Y\\240k\\260\\024\\260V\\2701\\270I\\300]\\320R[\\320[\\\\\\320\\\\h\\320hi\\320ix\\360\\000\\000y\\001D\\002\\360\\000\\000D\\002K\\002\\360\\000\\000K\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002S\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340#;\\2701\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\230?\\250\\\"\\250M\\270\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\026\\220r\\230\\024\\230Y\\240k\\260\\024\\260V\\2701\\270I\\300]\\320R\\\\\\320\\\\]\\320]i\\320ij\\320jy\\360\\000\\000z\\001E\\002\\360\\000\\000E\\002L\\002\\360\\000\\000L\\002R\\002\\360\\000\\000R\\002S\\002\\360\\000\\000S\"\"\\002T\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340\\004\\022\\320\\0222\\260!\\2601\\330\\004\\025\\220Q\\320\\0269\\270\\021\\200\\001\\360\\014\\000\\005\\022\\220\\037\\240\\001\\320!3\\2601\\3204D\\300A\\300Q\\330\\004\\025\\220Q\\320\\026(\\250\\001\\340\\004\\005\\330\\010\\020\\220\\t\\230\\021\\230$\\230a\\330\\010\\021\\220\\031\\230!\\2304\\230q\\330\\010\\030\\230\\t\\240\\021\\240$\\240a\\330\\010\\032\\230+\\240Q\\240d\\250(\\260!\\330\\010\\026\\220c\\230\\021\\230$\\230a\\330\\010\\032\\230#\\230Q\\230d\\240!\\330\\010\\027\\220s\\230!\\2304\\230q\\200\\001\\34034\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\020\\220\\001\\330\\004\\020\\220\\001\\330\\004\\021\\220\\037\\240\\002\\240&\\250\\010\\260\\002\\260$\\260f\\270H\\300B\\300d\\310,\\320Vc\\320cd\\320dp\\320pq\\360\\000\\000r\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002P\\002\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\013\\210<\\220q\\200\\001\\34045\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033;\\2702\\270Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021(\\250\\002\\250$\\250i\\260{\\300$\\300f\\310A\\310Y\\320Vc\\320cd\\320dp\\320pq\\360\\000\\000r\\001A\\002\\360\\000\\000A\\002L\\002\\360\\000\\000L\\002S\\002\\360\\000\\000S\\002Y\\002\\360\\000\\000Y\\002Z\\002\\360\\000\\000Z\\002[\\002\\330\\004\\025\\220Q\\320\\0260\\260\\001\\330\\004\\013\\2101\\200\\001\\360\\014\\000\\005\\023\\320\\022#\\2405\\250\\001\\330\\004\\007\\200t\\210:\\220Q\\220m\\2401\\330\\010\\026\\220d\\230!\\2301\\330\\004\\016\\210c\\220\\021\\220$\\220d\\230!\\2303\\230a\\230~\\250Q\\330\\004\\016\\210c\\220\\021\\220$\\220d\\230!\\2303\\230a\\230~\\250Q\\360\\006\\000\\005\\010\\200u\\210B\\210b\\220\\003\\2205\\230\\002\\230!\\2302\\230Q\\330\\010\\017\\210q\\360\\n\\000\\005\\013\\210!\\330\\004\\010\\210\\005\\210V\\2201\\220I\\230W\\240A\\240Q\\330\\010\\013\\2101\\210B\\210b\\220\\002\\220!\\330\\014\\017\\210w\\220a\\320\\027(\\250\\001\\250\\021\\250\\\"\\250A\\330\\004\\013\\2101\\200\\001\\34078\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\"\"\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\320\\021$\\240B\\240f\\250H\\260B\\260d\\270&\\300\\010\\310\\002\\310$\\310l\\320Zg\\320gh\\320ht\\320tu\\360\\000\\000v\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002G\\002\\330\\004\\025\\220Q\\320\\026,\\250A\\330\\004\\013\\2101\\200A\\3602\\000\\t\\021\\220\\004\\220A\\330\\010\\013\\210:\\220Q\\220n\\240A\\330\\014\\033\\2301\\330\\014\\020\\220\\007\\220t\\320\\0336\\260a\\330\\020\\023\\320\\023&\\240g\\250Q\\330\\024\\030\\230\\n\\240!\\240>\\260\\021\\330\\024\\036\\230d\\240'\\250\\034\\260Q\\340\\024\\036\\230d\\240'\\250\\021\\330\\020\\023\\2201\\330\\024 \\240\\007\\240q\\250\\001\\330\\014\\017\\210s\\220!\\220>\\240\\023\\240A\\330\\020\\025\\320\\025%\\240Q\\330\\020\\025\\320\\025&\\240a\\330\\020\\027\\220q\\340\\020\\026\\220i\\230q\\240\\001\\330/6\\260c\\270\\021\\270.\\310\\002\\310!\\3309:\\33004\\260E\\270\\021\\270!\\330\\010\\017\\210q\\200\\001\\340)A\\320A[\\320[u\\320uv\\3600\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260-\\270\\177\\310o\\320]^\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310=\\320Xg\\320gv\\360\\000\\000w\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002S\\002\\360\\000\\000S\\002T\\002\\360\\000\\000T\\002c\\002\\360\\000\\000c\\002n\\002\\360\\000\\000n\\002v\\002\\360\\000\\000v\\002|\\002\\360\\000\\000|\\002}\\002\\360\\000\\000}\\002H\\003\\360\\000\\000H\\003S\\003\\360\\000\\000S\\003[\\003\\360\\000\\000[\\003a\\003\\360\\000\\000a\\003b\\003\\360\\000\\000b\\003c\\003\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\210;\\220a\\200A\\330\\010\\020\\220\\004\\220A\\330\\010#\\2401\\330\\010\\014\\210N\\230%\\230q\\330\\014\\033\\2305\\240\\014\\250A\\250[\\270\\001\\270\\021\\330\\014\\017\\210z\\230\\021\\230.\\250\\001\\330\\020\\024\\220H\\230A\\330\\024,\\250G\\2601\\260A\\340\\020(\\250\\007\\250q\\260\\001\\330\\010\\017\\210q\\200A\\360\\016\\000\\t\\021\\220\\004\\220A\\340\\010\\033\\2302\\230\\\\\\250\\025\\250k\\270\\021\\270+\\300Q\\300a\\330\\034 \\240\\016\\250e\\260;\\270e\\3001\"\"\\330\\010#\\2402\\240S\\250\\005\\250\\\\\\270\\021\\270\\\"\\270A\\270Q\\330$(\\250\\005\\250U\\260!\\360\\006\\000\\t\\020\\210t\\2201\\220A\\330\\010\\027\\220q\\330\\010#\\2404\\320'B\\300!\\330\\010\\013\\2105\\220\\004\\220D\\230\\n\\240!\\2404\\240q\\250\\004\\250A\\330\\014\\020\\220\\003\\2207\\230)\\2401\\240A\\330\\020\\023\\2204\\220z\\240\\021\\240%\\240q\\330\\024\\025\\340\\020\\021\\330\\024 \\240\\001\\320!9\\270\\021\\270&\\300\\001\\330\\027\\030\\330\\024\\032\\320\\032G\\300q\\330\\030\\033\\2301\\230A\\330\\030\\034\\230E\\240\\021\\240!\\330\\024\\032\\230)\\2401\\240A\\340\\010\\013\\320\\013\\036\\230g\\240Q\\330\\020\\024\\220J\\230a\\230u\\240O\\2601\\330\\014'\\240u\\250M\\270\\021\\330\\r \\240\\007\\240q\\330\\020\\024\\220J\\230a\\230u\\240O\\2601\\330\\014'\\240u\\250M\\270\\031\\300!\\340\\014'\\240t\\2504\\250q\\260\\005\\260Q\\340\\010\\013\\2103\\210a\\210~\\230S\\240\\003\\2401\\240A\\330\\014\\020\\320\\020!\\240\\021\\240!\\330\\014\\023\\2204\\220q\\230\\003\\2301\\230A\\330\\r\\020\\220\\001\\220\\036\\230t\\320#<\\270A\\330\\020\\024\\220C\\220q\\230\\006\\230c\\240\\024\\240Z\\250q\\260\\004\\260A\\260T\\270\\021\\330\\014\\022\\320\\022A\\300\\021\\330\\020\\023\\2201\\220A\\330\\020\\024\\220E\\230\\021\\230!\\330\\014\\022\\220)\\2301\\230A\\340\\010\\014\\320\\014\\036\\230b\\240\\010\\250\\001\\330\\010\\014\\320\\014\\034\\230A\\360\\006\\000\\t\\r\\210L\\230\\t\\240\\021\\330\\014\\021\\220\\033\\230A\\230[\\250\\001\\250\\033\\260A\\330\\010\\r\\210U\\220!\\320\\023#\\2404\\240q\\360\\006\\000\\t\\r\\210L\\230\\t\\240\\021\\330\\014\\021\\220\\034\\230Q\\230k\\250\\021\\320*<\\270A\\330\\014\\021\\220\\025\\220a\\220~\\240Q\\240n\\260A\\340\\010\\017\\210t\\2201\\200A\\330\\010\\020\\220\\004\\220A\\330\\010#\\2404\\320'B\\300!\\360\\006\\000\\t\\020\\210q\\330\\010\\014\\320\\014\\034\\230A\\330\\014\\025\\220U\\230-\\240q\\250\\001\\330\\014\\017\\320\\017\\037\\230w\\240e\\2501\\330\\024\\036\\230a\\230x\\240q\\330\\020\\031\\230\\026\\230w\\240g\\250Q\\250a\\330\\021!\\240\\027\\250\\005\\250Q\\330\\024\\036\\230a\\230x\\240q\\330\\020\\031\\230\\026\\230y\\250\\002\\250'\\260\\021\\260!\\330\\014\\020\\220\\007\\220q\\230\\001\\330\\010\\014\\210M\\230\\025\\230a\\330\\014\\024\\220D\\320\\030.\\250a\\250q\\330\\014\\020\\220\\007\\220q\\230\\001\\360\\006\\000\\t\\023\\220$\\220l\\240\\\"\\240A\\330\\010\\013\\210:\\220Q\\220k\\240\\021\\330\\014\\023\\2205\\230\\010\"\"\\240\\005\\240Q\\330\\014\\017\\210t\\220:\\230Q\\230f\\240A\\330\\020\\027\\220t\\2301\\230A\\330\\014\\021\\220\\030\\230\\021\\230$\\230a\\230v\\240Q\\340\\014\\020\\220\\003\\220:\\230Y\\240a\\240u\\250A\\330\\020\\025\\220X\\230Q\\230j\\250\\007\\250q\\260\\001\\330\\010\\r\\320\\r\\036\\230a\\200A\\360\\016\\000\\t\\021\\220\\004\\220A\\330\\010\\013\\2104\\210u\\220A\\330\\014\\020\\320\\020 \\240\\001\\330\\010\\016\\210e\\2208\\2307\\240!\\330\\010\\013\\2104\\210z\\230\\021\\230%\\230q\\330\\014\\022\\220$\\220a\\220q\\330\\010\\013\\320\\013\\036\\230g\\240U\\250!\\330\\020\\032\\230!\\2305\\240\\017\\250q\\330\\014\\024\\220E\\230\\035\\240a\\330\\014\\017\\210s\\220!\\2205\\230\\003\\2301\\330\\020\\027\\220\\177\\240a\\240s\\250!\\2504\\250v\\260Q\\340\\020\\027\\320\\027)\\250\\021\\250%\\250}\\270A\\270Q\\330*0\\260\\001\\330*2\\260$\\260a\\330\\r \\240\\007\\240u\\250A\\330\\020\\032\\230!\\2305\\240\\017\\250q\\330\\014\\017\\210s\\220!\\2205\\230\\003\\2301\\330\\020\\027\\220\\177\\240a\\240s\\250!\\2501\\340\\020\\027\\320\\027)\\250\\021\\250%\\250}\\270A\\270Q\\330*1\\260\\024\\260Q\\340\\014\\023\\2203\\220a\\220v\\230S\\240\\001\\240\\025\\240c\\250\\027\\260\\001\\200A\\340\\010\\020\\220\\004\\220A\\330\\010\\013\\2104\\210w\\220a\\220w\\230a\\330\\014\\021\\220\\030\\230\\021\\330\\014\\021\\320\\021!\\240\\021\\360\\006\\000\\r\\022\\220\\037\\240\\013\\2501\\330\\014\\021\\220\\036\\230{\\250!\\330\\014\\021\\220\\033\\230K\\240q\\330\\014\\021\\320\\021\\\"\\240!\\360\\006\\000\\r\\022\\220\\030\\230\\037\\250\\001\\250\\024\\250Q\\360\\006\\000\\r\\021\\220\\005\\220V\\2301\\230E\\240\\025\\240d\\250!\\2501\\330\\020\\027\\320\\0270\\260\\001\\260\\024\\260Y\\270a\\330\\020\\035\\230T\\240\\021\\240!\\330\\020\\023\\2204\\220q\\320\\030(\\250\\003\\2501\\330\\024\\030\\230\\001\\320\\031+\\320+H\\310\\001\\310\\021\\330\\020\\025\\220\\\\\\240\\021\\240.\\260\\001\\330\\014\\021\\220\\025\\220a\\320\\027(\\250\\004\\250A\\360\\006\\000\\r\\021\\220\\005\\220V\\2301\\230E\\240\\025\\240d\\250!\\2501\\330\\020\\027\\320\\0273\\2601\\260D\\270\\t\\300\\021\\330\\020\\035\\230T\\240\\021\\240!\\330\\020\\025\\220[\\240\\001\\240\\036\\250q\\330\\014\\021\\220\\025\\220a\\320\\027'\\240t\\2501\\360\\006\\000\\r\\022\\220\\025\\220a\\320\\027)\\250\\033\\260A\\330\\014\\020\\220\\005\\220V\\2301\\230E\\240\\025\\240d\\250!\\2501\\330\\020\\027\\320\\0271\\260\\021\\260$\\260i\\270q\\330\\020\\036\"\"\\230d\\240!\\2401\\330\\020\\025\\220U\\230!\\230?\\250!\\250?\\270$\\270a\\270q\\330\\020\\025\\220X\\230Q\\230o\\250Q\\330\\014\\021\\220\\025\\220a\\320\\027)\\250\\024\\250Q\\330\\010\\017\\210q\\200A\\330\\010\\014\\210A\\330\\014\\023\\2206\\230\\021\\330\\014\\023\\2206\\230\\021\\330\\014\\023\\2206\\230\\021\\330\\014\\023\\2207\\230!\\330\\014\\023\\2207\\230!\\330\\014\\023\\2208\\2301\\330\\014\\023\\2207\\230!\\330\\014\\023\\2207\\230!\\330\\014\\023\\2205\\230\\001\\200A\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\020\\220\\005\\220[\\240\\001\\240\\033\\250A\\250Q\\330\\010\\013\\2106\\220\\023\\220A\\330\\014\\024\\220E\\230\\033\\240A\\240[\\260\\001\\260\\021\\330\\010\\017\\210q\\200A\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\014\\210L\\320\\030(\\250\\013\\2606\\270\\021\\330\\014\\021\\220\\034\\230Q\\230k\\250\\021\\320*<\\270A\\330\\014\\021\\220\\025\\220a\\220~\\240Q\\240n\\260A\\330\\010\\r\\320\\r\\036\\230a\\200A\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\026\\220a\\340\\010\\014\\210G\\2201\\330\\014\\017\\210t\\2203\\220e\\2301\\330\\020\\030\\230\\006\\230a\\230q\\330\\020\\023\\2204\\320\\027/\\250q\\260\\005\\260Q\\330\\024\\031\\230\\033\\240A\\240T\\250\\021\\250+\\260V\\2701\\270A\\330\\024\\\"\\240!\\330\\021\\025\\220S\\230\\005\\230Q\\330\\020\\025\\220\\\\\\240\\021\\240$\\240a\\320'9\\270\\026\\270q\\300\\001\\330\\020\\025\\220U\\230!\\230>\\250\\021\\250'\\260\\026\\260q\\270\\001\\340\\010\\013\\2101\\330\\014\\031\\230\\021\\330\\014\\017\\210t\\320\\023$\\240A\\240T\\250\\021\\250!\\330\\020\\035\\230Q\\330\\014\\017\\210s\\220!\\2206\\230\\022\\2301\\330\\020\\024\\220C\\220~\\240Y\\250a\\250u\\260A\\330\\024\\031\\230\\021\\330\\024\\027\\220r\\230\\022\\2303\\230a\\230q\\330\\030 \\240\\004\\240A\\240Q\\330\\030\\033\\2304\\320\\0377\\260q\\270\\014\\300A\\330\\034!\\240\\033\\250A\\250[\\270\\001\\270\\033\\300A\\330\\034*\\250!\\340\\010\\013\\2105\\220\\003\\2201\\330\\014\\017\\210q\\330\\020\\025\\220U\\230!\\320\\033+\\2504\\250q\\330\\014\\021\\320\\021\\\"\\240!\\200A\\360\\014\\000\\t\\021\\220\\004\\220A\\340\\010\\021\\320\\021&\\240a\\240t\\2501\\330\\010\\014\\210C\\210}\\230I\\240Q\\240e\\2501\\330\\014\\024\\220D\\320\\030.\\250a\\250q\\330\\014\\024\\220E\\230\\033\\240A\\240Z\\250q\\260\\001\\330\\014\\017\\210v\\220V\\320\\0332\\260#\\260V\\2706\\300\\021\\330\\020)\\250\\021\\250(\\260#\\260Q\\330\\021\\027\\220v\\320\\0357\\260s\"\"\\270&\\300\\006\\300a\\330\\020,\\250A\\250X\\260S\\270\\001\\340\\010\\023\\320\\023#\\2401\\240A\\330\\010\\034\\230A\\230Q\\330\\010\\017\\210q\\200A\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\013\\320\\013\\036\\230g\\240Q\\330\\014\\020\\220\\n\\230!\\2305\\240\\017\\250q\\330\\014\\023\\2205\\230\\r\\240V\\2501\\340\\014\\023\\2205\\230\\r\\240U\\250!\\200A\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\016\\210k\\230\\021\\330\\010\\014\\210M\\230\\025\\230a\\330\\014\\017\\210q\\220\\r\\230T\\320!7\\260q\\270\\001\\330\\010\\017\\210q\\200A\\360\\n\\000\\t\\021\\220\\004\\220A\\330\\010\\016\\210k\\230\\021\\330\\010\\014\\210N\\230%\\230q\\330\\014\\017\\210q\\220\\016\\230e\\240<\\250q\\260\\013\\2701\\270A\\330\\010\\017\\210q\\200\\001\\360\\004\\000A\\002B\\002\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0336\\260b\\270\\001\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021#\\2402\\240T\\250\\031\\260+\\270T\\300\\026\\300q\\310\\t\\320Q\\\\\\320\\\\`\\320`f\\320fg\\320gp\\320p{\\320{~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002O\\002\\360\\000\\000O\\002Z\\002\\360\\000\\000Z\\002_\\002\\360\\000\\000_\\002e\\002\\360\\000\\000e\\002f\\002\\360\\000\\000f\\002o\\002\\360\\000\\000o\\002}\\002\\360\\000\\000}\\002~\\002\\360\\000\\000~\\002J\\003\\360\\000\\000J\\003K\\003\\360\\000\\000K\\003Z\\003\\360\\000\\000Z\\003b\\003\\360\\000\\000b\\003l\\003\\360\\000\\000l\\003r\\003\\360\\000\\000r\\003s\\003\\360\\000\\000s\\003t\\003\\330\\004\\025\\220Q\\320\\026+\\2501\\330\\004\\013\\2101\\200A\\330\\010\\020\\220\\004\\220H\\230K\\240q\\250\\013\\2601\\260A\\330\\010\\013\\2106\\220\\027\\320\\0305\\260Q\\330\\014\\024\\220A\\330\\r\\023\\2207\\320\\0324\\260A\\330\\014\\024\\220A\\340\\010\\013\\210:\\220Q\\220g\\230Q\\330\\013\\022\\220!\\330\\r\\023\\2207\\230!\\330\\014\\022\\220)\\2301\\330\\020\\021\\330\\024 \\240\\005\\240[\\260\\004\\260A\\260V\\2701\\330\\010\\017\\210q\\200A\\340\\010\\014\\210J\\220m\\2406\\250\\021\\330\\010\\014\\210M\\230\\024\\230Q\\330\\010\\014\\210J\"\"\\220i\\230q\\240\\004\\240A\\360\\006\\000\\t\\r\\210O\\2309\\240F\\250!\\360\\006\\000\\t\\r\\320\\014\\036\\230b\\240\\010\\250\\001\\330\\010\\014\\210O\\2301\\200A\\330\\010\\017\\320\\017%\\240Q\\240d\\250&\\260\\001\\260\\021\\200\\001\\360\\004\\000A\\002Y\\002\\360\\000\\000Y\\002Z\\002\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\022\\220)\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\016\\210a\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320P[\\320[h\\320hv\\360\\000\\000w\\001D\\002\\360\\000\\000D\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002n\\002\\360\\000\\000n\\002o\\002\\360\\000\\000o\\002p\\002\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340@A\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3005\\310\\001\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QV\\320V\\\\\\320\\\\]\\320]f\\320fs\\320st\\360\\000\\000u\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002c\\002\\360\\000\\000c\\002i\\002\\360\\000\\000i\\002j\\002\\360\\000\\000j\\002k\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340@A\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250R\\250q\\330\\004\\023\\320\\023$\\240A\\240X\\250Q\\330\\004\\021\\320\\021\\\"\\240!\\2408\\2501\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\013\\320SV\\320V\\\\\\320\\\\]\\320]f\\320fs\\320st\\360\\000\\000u\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002Q\\002\\360\\000\"\"\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002h\\002\\360\\000\\000h\\002n\\002\\360\\000\\000n\\002o\\002\\360\\000\\000o\\002z\\002\\360\\000\\000z\\002E\\003\\360\\000\\000E\\003O\\003\\360\\000\\000O\\003U\\003\\360\\000\\000U\\003V\\003\\360\\000\\000V\\003W\\003\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\210?\\230!\\200\\001\\340$<\\270A\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250]\\270!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300m\\320S[\\320[\\\\\\320\\\\h\\320hi\\320ix\\360\\000\\000y\\001D\\002\\360\\000\\000D\\002K\\002\\360\\000\\000K\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002S\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200A\\360\\n\\000\\t\\017\\210d\\220(\\230(\\240%\\240q\\330\\010\\013\\2104\\210z\\230\\021\\230%\\230q\\330\\014\\022\\220$\\220a\\220q\\330\\010\\017\\210q\\200A\\330\\010\\017\\210q\\200A\\330\\010\\017\\210q\\220\\007\\220q\\230\\001\\200A\\330\\010\\017\\210t\\2208\\2301\\230A\\200A\\360\\n\\000\\t\\020\\210t\\2208\\2305\\240\\001\\240\\021\\200A\\360\\n\\000\\t\\020\\210t\\2208\\2305\\240\\005\\240Q\\200A\\360\\n\\000\\t\\020\\210t\\2208\\2305\\240\\001\\240\\037\\260\\005\\260Q\\200A\\330\\010\\017\\210u\\220A\\220S\\230\\001\\200A\\330\\010\\017\\210u\\220B\\220d\\230!\\200A\\330\\010\\017\\210w\\220a\\220t\\2308\\2401\\200\\001\\340A[\\320[z\\360\\000\\000{\\001_\\002\\360\\000\\000_\\002\\177\\002\\360\\000\\000\\177\\002b\\003\\360\\000\\000b\\003G\\004\\360\\000\\000G\\004h\\004\\360\\000\\000h\\004i\\004\\3604\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\r\\320=O\\320Of\\320fy\\360\\000\\000z\\001P\\002\\360\\000\\000P\\002h\\002\\360\\000\\000h\\002|\\002\\360\\000\\000|\\002}\\002\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\033\\320TW\\320W]\\320]^\\320^g\\320gt\\360\\000\\000u\\001G\\002\\360\\000\\000G\\002^\\002\"\"\\360\\000\\000^\\002q\\002\\360\\000\\000q\\002G\\003\\360\\000\\000G\\003_\\003\\360\\000\\000_\\003s\\003\\360\\000\\000s\\003J\\004\\360\\000\\000J\\004K\\004\\360\\000\\000K\\004W\\004\\360\\000\\000W\\004X\\004\\360\\000\\000X\\004g\\004\\360\\000\\000g\\004r\\004\\360\\000\\000r\\004y\\004\\360\\000\\000y\\004\\177\\004\\360\\000\\000\\177\\004@\\005\\360\\000\\000@\\005A\\005\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340BC\\360(\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\r\\210]\\230!\\2308\\240:\\250U\\260(\\270*\\300E\\310\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250B\\250a\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2605\\270\\006\\270a\\270y\\310\\013\\320SX\\320X^\\320^_\\320_h\\320hu\\320uv\\360\\000\\000w\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002S\\002\\360\\000\\000S\\002^\\002\\360\\000\\000^\\002e\\002\\360\\000\\000e\\002k\\002\\360\\000\\000k\\002l\\002\\360\\000\\000l\\002m\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\340BC\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250r\\260\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310+\\320UX\\320X^\\320^_\\320_h\\320hu\\320uv\\360\\000\\000w\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002S\\002\\360\\000\\000S\\002^\\002\\360\\000\\000^\\002e\\002\\360\\000\\000e\\002k\\002\\360\\000\\000k\\002l\\002\\360\\000\\000l\\002m\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\340*B\\300!\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\026\\220r\\230\\026\\230x\\240r\\250\\024\\250V\\2608\\2702\\270T\\300\\034\\310]\\320Zc\\320cd\\320dp\\320pq\\360\\000\\000r\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002C\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340*B\\300!\\360(\\000\\005\"\"\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\026\\220r\\230\\026\\230x\\240r\\250\\024\\250V\\2608\\2702\\270T\\300\\034\\310]\\320Zd\\320de\\320eq\\320qr\\360\\000\\000s\\001B\\002\\360\\000\\000B\\002C\\002\\360\\000\\000C\\002D\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340+C\\3001\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310m\\320[c\\320cd\\320dp\\320pq\\360\\000\\000r\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002C\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340+C\\320C[\\320[\\\\\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310m\\320[h\\320hq\\320qr\\320r~\\320~\\177\\360\\000\\000@\\002O\\002\\360\\000\\000O\\002P\\002\\360\\000\\000P\\002Q\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340CD\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VY\\320Y_\\320_`\\320`i\\320iv\\320vw\\360\\000\\000x\\001D\\002\\360\\000\\000D\\002E\\002\\360\\000\\000E\\002T\\002\\360\\000\\000T\\002_\\002\\360\\000\\000_\\002f\\002\\360\\000\\000f\\002l\\002\\360\\000\\000l\\002m\\002\\360\\000\\000m\\002n\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340CZ\\320Zq\\320qr\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\016\\210k\\230\\021\\230!\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3007\\310!\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250B\\250l\\270,\\300a\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\"\"\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300{\\320RY\\320Y_\\320_`\\320`i\\320iu\\360\\000\\000v\\001B\\002\\360\\000\\000B\\002K\\002\\360\\000\\000K\\002L\\002\\360\\000\\000L\\002X\\002\\360\\000\\000X\\002Y\\002\\360\\000\\000Y\\002h\\002\\360\\000\\000h\\002s\\002\\360\\000\\000s\\002z\\002\\360\\000\\000z\\002@\\003\\360\\000\\000@\\003A\\003\\360\\000\\000A\\003B\\003\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360\\004\\000C\\002D\\002\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0338\\270\\002\\270!\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021%\\240R\\240t\\2509\\260K\\270t\\3006\\310\\021\\310)\\320S^\\320^b\\320bh\\320hi\\320ir\\320r}\\360\\000\\000~\\001A\\002\\360\\000\\000A\\002G\\002\\360\\000\\000G\\002H\\002\\360\\000\\000H\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002a\\002\\360\\000\\000a\\002g\\002\\360\\000\\000g\\002h\\002\\360\\000\\000h\\002q\\002\\360\\000\\000q\\002\\177\\002\\360\\000\\000\\177\\002@\\003\\360\\000\\000@\\003L\\003\\360\\000\\000L\\003M\\003\\360\\000\\000M\\003\\\\\\003\\360\\000\\000\\\\\\003d\\003\\360\\000\\000d\\003n\\003\\360\\000\\000n\\003t\\003\\360\\000\\000t\\003u\\003\\360\\000\\000u\\003v\\003\\330\\004\\025\\220Q\\320\\026-\\250Q\\330\\004\\013\\2101\\200\\001\\340,D\\320D\\\\\\320\\\\]\\3602\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\024\\220A\\330\\004\\022\\220!\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310}\\320\\\\i\\320ix\\320xy\\360\\000\\000z\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002a\\002\\360\\000\\000a\\002b\\002\\360\\000\\000b\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002t\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\340DE\\360(\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\014\\210K\\220q\\230\\001\\330\"\"\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\r\\210]\\230!\\2308\\240:\\250U\\260(\\270*\\300E\\310\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260U\\270&\\300\\001\\300\\031\\310+\\320UZ\\320Z`\\320`a\\320aj\\320jw\\320wx\\360\\000\\000y\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002U\\002\\360\\000\\000U\\002`\\002\\360\\000\\000`\\002g\\002\\360\\000\\000g\\002m\\002\\360\\000\\000m\\002n\\002\\360\\000\\000n\\002o\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360\\004\\000D\\002E\\002\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\220\\036\\230r\\240\\026\\240x\\250r\\260\\024\\260V\\2708\\3002\\300T\\310\\034\\320Ua\\320al\\320ly\\360\\000\\000z\\001H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002e\\002\\360\\000\\000e\\002f\\002\\360\\000\\000f\\002g\\002\\330\\004\\025\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360\\004\\000D\\002E\\002\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0339\\270\\022\\2701\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021&\\240b\\250\\004\\250I\\260[\\300\\004\\300F\\310!\\3109\\320T_\\320_c\\320ci\\320ij\\320js\\320s~\\360\\000\\000\\177\\001B\\002\\360\\000\\000B\\002H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002R\\002\\360\\000\\000R\\002]\\002\\360\\000\\000]\\002b\\002\\360\\000\\000b\\002h\\002\\360\\000\\000h\\002i\\002\\360\\000\\000i\\002r\\002\\360\\000\\000r\\002@\\003\\360\\000\\000@\\003A\\003\\360\\000\\000A\\003M\\003\\360\\000\\000M\\003N\\003\\360\\000\\000N\\003]\"\"\\003\\360\\000\\000]\\003e\\003\\360\\000\\000e\\003o\\003\\360\\000\\000o\\003u\\003\\360\\000\\000u\\003v\\003\\360\\000\\000v\\003w\\003\\330\\004\\025\\220Q\\320\\026.\\250a\\330\\004\\013\\2101\\200\\001\\340,E\\300Q\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310|\\320[g\\320gh\\320ht\\320tu\\360\\000\\000v\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002R\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\210:\\220Q\\200\\001\\360\\004\\000E\\002F\\002\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033:\\270\\\"\\270A\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021'\\240r\\250\\024\\250Y\\260k\\300\\024\\300V\\3101\\310I\\320U`\\320`d\\320dj\\320jk\\320kt\\320t\\177\\360\\000\\000@\\002C\\002\\360\\000\\000C\\002I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002S\\002\\360\\000\\000S\\002^\\002\\360\\000\\000^\\002c\\002\\360\\000\\000c\\002i\\002\\360\\000\\000i\\002j\\002\\360\\000\\000j\\002s\\002\\360\\000\\000s\\002A\\003\\360\\000\\000A\\003B\\003\\360\\000\\000B\\003N\\003\\360\\000\\000N\\003O\\003\\360\\000\\000O\\003^\\003\\360\\000\\000^\\003f\\003\\360\\000\\000f\\003p\\003\\360\\000\\000p\\003v\\003\\360\\000\\000v\\003w\\003\\360\\000\\000w\\003x\\003\\330\\004\\025\\220Q\\320\\026/\\250q\\330\\004\\013\\2101\\200\\001\\340E`\\320`a\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310k\\320Yh\\320hr\\320rs\\320s\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002R\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\"\"\\2101\\200\\001\\340.F\\320F]\\320]t\\320tu\\3604\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\027\\220q\\330\\004\\030\\230\\001\\330\\004\\027\\220q\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q^\\320^h\\320hr\\320r{\\320{|\\360\\000\\000}\\001I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002Y\\002\\360\\000\\000Y\\002Z\\002\\360\\000\\000Z\\002m\\002\\360\\000\\000m\\002n\\002\\360\\000\\000n\\002B\\003\\360\\000\\000B\\003C\\003\\360\\000\\000C\\003D\\003\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\320\\013\\036\\320\\0362\\260!\\200\\001\\340.F\\300a\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q^\\320^f\\320fg\\320gs\\320st\\360\\000\\000u\\001D\\002\\360\\000\\000D\\002E\\002\\360\\000\\000E\\002F\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340/G\\320GZ\\320Zr\\360\\000\\000s\\001F\\002\\360\\000\\000F\\002`\\002\\360\\000\\000`\\002a\\002\\3608\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\024\\220A\\330\\004\\022\\220!\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320R_\\320_l\\320ly\\360\\000\\000z\\001G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002e\\002\\360\\000\\000e\\002f\\002\\360\\000\\000f\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002B\\003\\360\\000\\000B\\003C\\003\\360\\000\\000C\\003M\\003\\360\\000\\000M\\003N\\003\\360\\000\\000N\\003^\\003\\360\\000\\000^\\003_\\003\\360\\000\\000_\\003`\\003\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\340GH\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310m\\320[h\\320hi\\320iu\\320uv\\360\\000\\000w\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002H\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\"\"\\200\\001\\340GH\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\023\\2201\\330\\004\\021\\220\\021\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320P[\\320[h\\320hi\\320iu\\320uv\\360\\000\\000w\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002X\\002\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\210?\\230!\\200\\001\\360\\004\\000H\\002I\\002\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021#\\2402\\240V\\2508\\2602\\260T\\270\\026\\270x\\300r\\310\\024\\310\\\\\\320Ye\\320ep\\320p}\\360\\000\\000~\\001L\\002\\360\\000\\000L\\002M\\002\\360\\000\\000M\\002Y\\002\\360\\000\\000Y\\002Z\\002\\360\\000\\000Z\\002i\\002\\360\\000\\000i\\002j\\002\\360\\000\\000j\\002k\\002\\330\\004\\025\\220Q\\320\\026+\\2501\\330\\004\\013\\2101\\200\\001\\340Hb\\360\\000\\000c\\001B\\002\\360\\000\\000B\\002f\\002\\360\\000\\000f\\002F\\003\\360\\000\\000F\\003i\\003\\360\\000\\000i\\003N\\004\\360\\000\\000N\\004o\\004\\360\\000\\000o\\004p\\004\\3606\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q\\\\\\320\\\\i\\320i{\\360\\000\\000|\\001S\\002\\360\\000\\000S\\002f\\002\\360\\000\\000f\\002|\\002\\360\\000\\000|\\002T\\003\\360\\000\\000T\\003h\\003\\360\\000\\000h\\003\\177\\003\\360\\000\\000\\177\\003@\\004\\360\\000\\000@\\004L\\004\\360\\000\\000L\\004M\\004\\360\\000\\000M\\004\\\\\\004\\360\\000\\000\\\\\\004]\\004\\360\\000\\000]\\004^\\004\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340IJ\\360*\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\"\"\\230!\\2307\\240!\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300=\\320P]\\320]j\\320jk\\320kw\\320wx\\360\\000\\000y\\001H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002J\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\340IJ\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320R]\\320]j\\320jk\\320kw\\320wx\\360\\000\\000y\\001H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002J\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\340JK\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S^\\320^k\\320kl\\320lx\\320xy\\360\\000\\000z\\001I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002K\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\360\\004\\000J\\002K\\002\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021%\\240R\\240v\\250X\\260R\\260t\\2706\\300\\030\\310\\022\\3104\\310|\\320[g\\320gr\\320r\\177\\360\\000\\000@\\002N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002[\\002\\360\\000\\000[\\002\\\\\\002\\360\\000\\000\\\\\\002k\\002\\360\\000\\000k\\002l\\002\\360\\000\\000l\\002m\\002\\330\\004\\025\\220Q\\320\\026-\\250Q\\330\\004\\013\\2101\\200\\001\\340Ja\\320ax\\320xy\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\016\\210k\\230\\021\\230!\\330\\004\\023\\2209\\230G\\2401\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310\\177\\320^j\\320jv\\320v\\177\\360\\000\\000@\"\"\\002A\\002\\360\\000\\000A\\002M\\002\\360\\000\\000M\\002N\\002\\360\\000\\000N\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002_\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\340KL\\360*\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300]\\320R_\\320_l\\320lm\\320my\\320yz\\360\\000\\000{\\001J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002L\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360\\004\\000K\\002L\\002\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021&\\240b\\250\\006\\250h\\260b\\270\\004\\270F\\300(\\310\\\"\\310D\\320P\\\\\\320\\\\h\\320hs\\360\\000\\000t\\001A\\002\\360\\000\\000A\\002O\\002\\360\\000\\000O\\002P\\002\\360\\000\\000P\\002\\\\\\002\\360\\000\\000\\\\\\002]\\002\\360\\000\\000]\\002l\\002\\360\\000\\000l\\002m\\002\\360\\000\\000m\\002n\\002\\330\\004\\025\\220Q\\320\\026.\\250a\\330\\004\\013\\2101\\200\\001\\360(\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\r\\210]\\230!\\2308\\240:\\250U\\260(\\270*\\300E\\310\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2501\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260%\\260v\\270Q\\270i\\300{\\320RW\\320W]\\320]^\\320^g\\320gh\\320ht\\320tu\\360\\000\\000v\\001E\\002\\360\\000\\000E\\002P\\002\\360\\000\\000P\\002W\\002\\360\\000\\000W\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002_\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360(\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\r\\210]\\230!\\2308\\240:\\250U\\260(\\270*\\300E\\310\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\"\"\\017\\210w\\220e\\320\\033,\\250A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2605\\270\\006\\270a\\270y\\310\\013\\320SX\\320X^\\320^_\\320_h\\320hi\\320iu\\320uv\\360\\000\\000w\\001F\\002\\360\\000\\000F\\002Q\\002\\360\\000\\000Q\\002X\\002\\360\\000\\000X\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002`\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300=\\320P]\\320]^\\320^j\\320jk\\320kz\\320z{\\320{|\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\r\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2307\\240!\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300-\\310}\\320\\\\]\\320]i\\320ij\\320jy\\320yz\\320z{\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360\\004\\000L\\002M\\002\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021'\\240r\\250\\026\\250x\\260r\\270\\024\\270V\\3008\\3102\\310T\\320Q]\\320]i\\320it\\360\\000\\000u\\001B\\002\\360\\000\\000B\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002m\\002\\360\\000\\000m\\002n\\002\\360\\000\\000n\\002o\\002\\330\\004\\025\\220Q\\320\\026/\\250q\\330\\004\\013\\2101\\200N\\220!\\360\\016\\000\\t\\014\\2101\\330\\014\\020\\320\\020!\\240\\021\\240!\\330\\010\\014\\320\\014\\034\\230A\\330\\010\\017\\210t\\2201\\200\\001\\360\\014\\000\\005\\022\\320\\021-\\250Q\\320.@\\300\\001\\320AQ\\320QV\\320VW\\320WX\\330\\004\\025\\220Q\\320\\0265\\260Q\\340\\004\\013\\2109\\220A\\220T\\230\\021\\330\\004\\013\\2104\\210q\\220\"\"\\003\\2201\\220J\\230f\\240A\\330\\004\\024\\220C\\220q\\230\\004\\320\\034.\\250d\\260&\\270\\002\\270'\\300\\024\\300Q\\340\\004\\005\\330\\010\\020\\220\\001\\330\\010\\030\\230\\t\\240\\021\\240$\\240a\\330\\010\\020\\220\\004\\220A\\330\\010\\020\\220\\t\\230\\021\\230$\\230a\\330\\010\\031\\230\\021\\330\\010\\021\\220\\021\\320\\004\\035\\230Q\\360\\010\\000\\t\\021\\220\\004\\220A\\330\\010\\025\\220[\\240\\003\\2401\\330\\010\\022\\220'\\230\\021\\230!\\330\\010\\014\\210G\\2209\\230J\\240f\\250A\\330\\014\\017\\210t\\320\\023+\\2501\\250G\\2601\\330\\020\\025\\220[\\240\\001\\240\\026\\240q\\250\\013\\2601\\330\\010\\r\\320\\r\\036\\230a\\330\\010\\r\\210U\\220!\\320\\023#\\2404\\240q\\200\\001\\360\\n\\000\\005\\026\\220Q\\320\\026/\\320/B\\300!\\3001\\300A\\330\\004\\r\\210Q\\330\\004\\010\\210\\005\\210V\\2201\\220E\\230\\021\\330\\010\\016\\210g\\220Q\\220f\\230A\\230U\\240'\\250\\021\\250!\\330\\004\\025\\220Q\\320\\026.\\320.@\\300\\001\\300\\021\\330\\004\\013\\2101\\200\\001\\360\\014\\000\\005\\022\\320\\021*\\250!\\320+=\\270Q\\320>N\\310e\\320ST\\320TU\\330\\004\\025\\220Q\\320\\0262\\260!\\340\\004\\013\\2109\\220A\\220T\\230\\021\\330\\004\\013\\2104\\210q\\220\\003\\2201\\220G\\2306\\240\\021\\330\\004\\007\\200w\\210c\\220\\021\\330\\010\\017\\210t\\2208\\2301\\230H\\240A\\330\\t\\021\\220\\023\\220A\\330\\010\\017\\210q\\340\\004\\005\\330\\010\\020\\220\\001\\330\\010\\030\\230\\013\\2401\\240D\\250\\010\\260\\001\\200\\001\\360\\n\\000\\005\\026\\220Q\\320\\026.\\320.@\\300\\001\\300\\027\\310\\001\\310\\021\\330\\004\\020\\220\\001\\330\\004\\010\\210\\005\\210V\\2201\\220E\\230\\021\\330\\010\\021\\220\\027\\230\\001\\230\\026\\230q\\240\\005\\240W\\250A\\250Q\\330\\004\\025\\220Q\\320\\026-\\320->\\270a\\270q\\330\\004\\013\\2101\\200\\001\\340\\004\\022\\220.\\240\\001\\330\\004\\025\\220Q\\320\\026'\\240q\\200\\001\\340\\004\\034\\320\\034-\\250Q\\250a\\330\\004\\020\\320\\020%\\240Q\\240a\\330\\004\\013\\2101\\200\\001\\340\\004\\034\\320\\034-\\250Q\\250a\\330\\004\\022\\320\\022'\\240q\\250\\004\\250A\\330\\004\\025\\220Q\\320\\026.\\250a\\200\\001\\340(@\\320@S\\320Sk\\320k~\\360\\000\\000\\177\\001Y\\002\\360\\000\\000Y\\002Z\\002\\3608\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250r\\260\\035\\270m\\310=\"\"\\320Xe\\320et\\320tu\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\024\\320\\024%\\240Q\\240h\\250a\\330\\004\\022\\320\\022#\\2401\\240H\\250A\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310-\\320Wd\\320dq\\320q~\\360\\000\\000\\177\\001N\\002\\360\\000\\000N\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002j\\002\\360\\000\\000j\\002k\\002\\360\\000\\000k\\002z\\002\\360\\000\\000z\\002E\\003\\360\\000\\000E\\003L\\003\\360\\000\\000L\\003R\\003\\360\\000\\000R\\003S\\003\\360\\000\\000S\\003^\\003\\360\\000\\000^\\003i\\003\\360\\000\\000i\\003v\\003\\360\\000\\000v\\003|\\003\\360\\000\\000|\\003}\\003\\360\\000\\000}\\003H\\004\\360\\000\\000H\\004S\\004\\360\\000\\000S\\004^\\004\\360\\000\\000^\\004d\\004\\360\\000\\000d\\004e\\004\\360\\000\\000e\\004f\\004\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\340$<\\320<T\\320TU\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250]\\270-\\300q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300m\\320S`\\320`i\\320ij\\320jv\\320vw\\360\\000\\000x\\001G\\002\\360\\000\\000G\\002R\\002\\360\\000\\000R\\002Y\\002\\360\\000\\000Y\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002a\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340%=\\320=U\\320UV\\3602\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250B\\250m\\270=\\310\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\024\\320\\024%\\240Q\\240h\\250a\\330\\004\\022\\320\\022#\\2401\\240H\\250A\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300}\\320Ta\\320ap\\320pq\\320q}\\320}~\\360\\000\\000\\177\\001N\\002\\360\\000\\000N\\002Y\\002\\360\\000\\000Y\\002`\\002\\360\\000\\000`\\002f\\002\\360\\000\\000f\\002g\\002\\360\\000\\000g\\002r\\002\\360\\000\\000r\\002}\\002\\360\\000\\000}\\002J\\003\\360\\000\\000J\\003P\\003\\360\\000\\000P\\003Q\\003\\360\\000\\000Q\\003\"\"\\\\\\003\\360\\000\\000\\\\\\003g\\003\\360\\000\\000g\\003r\\003\\360\\000\\000r\\003x\\003\\360\\000\\000x\\003y\\003\\360\\000\\000y\\003z\\003\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\340'?\\320?V\\320Vm\\320mn\\3604\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\r\\270Z\\300z\\320QR\\330\\004\\027\\320\\027(\\250\\001\\250\\030\\260\\021\\330\\004\\030\\320\\030)\\250\\021\\250(\\260!\\330\\004\\027\\320\\027(\\250\\001\\250\\030\\260\\021\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\035\\320V`\\320`j\\320js\\320st\\360\\000\\000u\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002l\\002\\360\\000\\000l\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002~\\002\\360\\000\\000~\\002I\\003\\360\\000\\000I\\003Z\\003\\360\\000\\000Z\\003`\\003\\360\\000\\000`\\003a\\003\\360\\000\\000a\\003l\\003\\360\\000\\000l\\003w\\003\\360\\000\\000w\\003G\\004\\360\\000\\000G\\004M\\004\\360\\000\\000M\\004N\\004\\360\\000\\000N\\004O\\004\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\320\\013\\036\\320\\0362\\260!\\200\\001\\340>Y\\320YZ\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250_\\270A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QT\\320TZ\\320Z[\\320[d\\320ds\\320s}\\320}~\\360\\000\\000\\177\\001K\\002\\360\\000\\000K\\002L\\002\\360\\000\\000L\\002[\\002\\360\\000\\000[\\002f\\002\\360\\000\\000f\\002m\\002\\360\\000\\000m\\002s\\002\\360\\000\\000s\\002t\\002\\360\\000\\000t\\002u\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340YZ\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\"\"\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\230?\\250\\\"\\250A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\026\\220r\\230\\024\\230Y\\240k\\260\\024\\260V\\2701\\270I\\300[\\320PS\\320SY\\320YZ\\320Zc\\320cn\\320ns\\320sy\\320yz\\360\\000\\000{\\001D\\002\\360\\000\\000D\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002n\\002\\360\\000\\000n\\002y\\002\\360\\000\\000y\\002@\\003\\360\\000\\000@\\003F\\003\\360\\000\\000F\\003G\\003\\360\\000\\000G\\003H\\003\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340Z[\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QT\\320TZ\\320Z[\\320[d\\320do\\320ot\\320tz\\320z{\\360\\000\\000|\\001E\\002\\360\\000\\000E\\002R\\002\\360\\000\\000R\\002S\\002\\360\\000\\000S\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002o\\002\\360\\000\\000o\\002z\\002\\360\\000\\000z\\002A\\003\\360\\000\\000A\\003G\\003\\360\\000\\000G\\003H\\003\\360\\000\\000H\\003I\\003\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340\\004\\022\\220,\\230a\\330\\004\\025\\220Q\\220o\\240Q\\200\\001\\340`a\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\026\\220r\\230\\026\\230x\\240r\\250\\024\\250V\\2608\\2702\\270T\\300\\034\\310[\\320Xe\\320er\\320rs\\320s\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002R\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340%>\\270a\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\"\"\\220e\\320\\033,\\250B\\250l\\270!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300|\\320S_\\320_`\\320`l\\320lm\\320m|\\360\\000\\000}\\001H\\002\\360\\000\\000H\\002O\\002\\360\\000\\000O\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002a\\002\\360\\000\\000a\\002l\\002\\360\\000\\000l\\002s\\002\\360\\000\\000s\\002y\\002\\360\\000\\000y\\002z\\002\\360\\000\\000z\\002{\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\210:\\220Q\\200\\001\\340ab\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310k\\320Yf\\320fs\\320st\\360\\000\\000u\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002S\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3006\\310\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2501\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QW\\320W]\\320]^\\320^g\\320gh\\320ht\\320tu\\360\\000\\000v\\001E\\002\\360\\000\\000E\\002P\\002\\360\\000\\000P\\002W\\002\\360\\000\\000W\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002_\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\022\\220)\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310n\\320\\\\]\\320]i\\320ij\\320jy\\320yz\\320z{\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340\\004\\022\\320\\022&\\240a\\240q\\330\\004\\025\\220Q\\320\\026-\\250Q\"\"\\200\\001\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S^\\320^_\\320_k\\320kl\\320l{\\320{|\\320|}\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340~\\177\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\022\\220)\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310k\\320Yf\\320ft\\360\\000\\000u\\001B\\002\\360\\000\\000B\\002C\\002\\360\\000\\000C\\002O\\002\\360\\000\\000O\\002P\\002\\360\\000\\000P\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002a\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\022\\220)\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\016\\210a\\330\\004\\021\\220\\026\\220r\\230\\026\\230x\\240r\\250\\024\\250V\\2608\\2702\\270T\\300\\034\\310[\\320Xe\\320es\\320st\\360\\000\\000u\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002Q\\002\\360\\000\\000Q\\002R\\002\\360\\000\\000R\\002S\\002\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q\\\\\\320\\\\i\\320ij\\320jv\\320vw\\360\\000\\000x\\001G\\002\\360\\000\\000G\\002H\\002\\360\\000\\000H\\002I\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\"\"\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S^\\320^k\\320kl\\320lx\\320xy\\360\\000\\000z\\001I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002K\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021!\\240\\022\\2406\\250\\030\\260\\022\\2604\\260v\\270X\\300R\\300t\\310<\\320WX\\320Xd\\320de\\320et\\320tu\\320uv\\330\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\021\\220\\021\\330\\004\\024\\220A\\330\\004\\021\\220\\035\\230b\\240\\006\\240h\\250b\\260\\004\\260F\\270(\\300\\\"\\300D\\310\\014\\320TU\\320Ua\\320ab\\320bq\\320qr\\320r\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002B\\002\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\210=\\230\\001\\200\\001\\340./\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210Q\\330\\004\\r\\210Q\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q^\\320^_\\320_k\\320kl\\320l{\\320{|\\360\\000\\000}\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002H\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2109\\220A\\200\\001\\340./\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q^\\320^_\\320_k\\320kl\\320l{\\320{|\\320|}\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\320\\021!\\240\\022\\2406\\250\\030\\260\\022\\2604\\260v\\270X\\300R\\300t\\310<\\320WX\\320Xd\\320de\\320et\\320tu\\320uv\\330\"\"\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\340,-\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310}\\320\\\\]\\320]i\\320ij\\320jy\\320yz\\320z{\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310q\\320P\\\\\\320\\\\]\\320]l\\320lm\\320mn\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\022\\220!\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320RS\\320S_\\320_`\\320`o\\320op\\320pz\\320z{\\320{|\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\220Q\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320PQ\\320Q]\\320]^\\320^m\\320mn\\320no\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340-.\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320P]\\320]^\\320^j\\320jk\\320kz\\320z{\\320{|\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340;<\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\320\\021(\\250\\002\\250&\\260\\010\\270\\002\\270$\\270f\\300H\\310B\\310d\\320R^\\320^k\\320kl\\320lx\\320xy\\360\\000\\000z\\001I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002K\\002\\330\\004\\025\\220Q\\320\\0260\\260\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\"\"\\330\\004\\021\\220\\037\\240\\002\\240&\\250\\010\\260\\002\\260$\\260f\\270H\\300B\\300d\\310,\\320VW\\320Wc\\320cd\\320ds\\320st\\320tu\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310a\\310|\\320[\\\\\\320\\\\k\\320kl\\320lm\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340+,\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310m\\320[\\\\\\320\\\\h\\320hi\\320ix\\320xy\\320yz\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\026\\220r\\230\\026\\230x\\240r\\250\\024\\250V\\2608\\2702\\270T\\300\\034\\310Q\\310l\\320Z[\\320[j\\320jk\\320kl\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\016\\210a\\330\\004\\021\\220\\036\\230r\\240\\026\\240x\\250r\\260\\024\\260V\\2708\\3002\\300T\\310\\034\\320UV\\320Vb\\320bc\\320cr\\320rs\\320st\\330\\004\\025\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021#\\2402\\240V\\2508\\2602\\260T\\270\\026\\270x\\300r\\310\\024\\310\\\\\\320Ye\\320ep\\320p}\\320}~\\360\\000\\000\\177\\001K\\002\\360\\000\\000K\\002L\\002\\360\\000\\000L\\002[\\002\\360\\000\\000[\\002\\\\\\002\\360\\000\\000\\\\\\002]\\002\\330\\004\\025\\220Q\\320\\026+\\2501\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\"\"\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021!\\240\\022\\2406\\250\\030\\260\\022\\2604\\260v\\270X\\300R\\300t\\310<\\320Wc\\320cn\\320n{\\320{|\\360\\000\\000}\\001I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002Y\\002\\360\\000\\000Y\\002Z\\002\\360\\000\\000Z\\002[\\002\\330\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021$\\240B\\240f\\250H\\260B\\260d\\270&\\300\\010\\310\\002\\310$\\310l\\320Zf\\320fq\\320q~\\320~\\177\\360\\000\\000@\\002L\\002\\360\\000\\000L\\002M\\002\\360\\000\\000M\\002\\\\\\002\\360\\000\\000\\\\\\002]\\002\\360\\000\\000]\\002^\\002\\330\\004\\025\\220Q\\320\\026,\\250A\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320R^\\320^i\\320iv\\320vw\\360\\000\\000x\\001D\\002\\360\\000\\000D\\002E\\002\\360\\000\\000E\\002T\\002\\360\\000\\000T\\002U\\002\\360\\000\\000U\\002V\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021\\\"\\240\\\"\\240F\\250(\\260\\\"\\260D\\270\\006\\270h\\300b\\310\\004\\310L\\320Xd\\320do\"\"\\320o|\\320|}\\360\\000\\000~\\001J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002Z\\002\\360\\000\\000Z\\002[\\002\\360\\000\\000[\\002\\\\\\002\\330\\004\\025\\220Q\\320\\026*\\250!\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021%\\240R\\240v\\250X\\260R\\260t\\2706\\300\\030\\310\\022\\3104\\310|\\320[g\\320gr\\320r\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002M\\002\\360\\000\\000M\\002N\\002\\360\\000\\000N\\002]\\002\\360\\000\\000]\\002^\\002\\360\\000\\000^\\002_\\002\\330\\004\\025\\220Q\\320\\026-\\250Q\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S_\\320_j\\320jw\\320wx\\360\\000\\000y\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002W\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\016\\210a\\330\\004\\021\\220\\027\\230\\002\\230&\\240\\010\\250\\002\\250$\\250f\\260H\\270B\\270d\\300,\\310l\\320Ze\\320er\\320rs\\320s\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002R\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\"\"\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\220\\035\\230b\\240\\006\\240h\\250b\\260\\004\\260F\\270(\\300\\\"\\300D\\310\\014\\320T`\\320`k\\320kx\\320xy\\360\\000\\000z\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002X\\002\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021&\\240b\\250\\006\\250h\\260b\\270\\004\\270F\\300(\\310\\\"\\310D\\320P\\\\\\320\\\\h\\320hs\\360\\000\\000t\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002`\\002\\330\\004\\025\\220Q\\320\\026.\\250a\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\220\\037\\240\\002\\240&\\250\\010\\260\\002\\260$\\260f\\270H\\300B\\300d\\310,\\320Vb\\320bm\\320mz\\320z{\\360\\000\\000|\\001H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002X\\002\\360\\000\\000X\\002Y\\002\\360\\000\\000Y\\002Z\\002\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021(\\250\\002\\250&\\260\\010\\270\\002\\270$\\270f\\300H\\310B\\310d\\320R^\"\"\\320^j\\320ju\\360\\000\\000v\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002`\\002\\360\\000\\000`\\002a\\002\\360\\000\\000a\\002b\\002\\330\\004\\025\\220Q\\320\\0260\\260\\001\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\220\\036\\230r\\240\\026\\240x\\250r\\260\\024\\260V\\2708\\3002\\300T\\310\\034\\320Ua\\320al\\320ly\\320yz\\360\\000\\000{\\001G\\002\\360\\000\\000G\\002H\\002\\360\\000\\000H\\002W\\002\\360\\000\\000W\\002X\\002\\360\\000\\000X\\002Y\\002\\330\\004\\025\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360,\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\021\\220\\021\\330\\004\\021\\320\\021'\\240r\\250\\026\\250x\\260r\\270\\024\\270V\\3008\\3102\\310T\\320Q]\\320]i\\320it\\360\\000\\000u\\001B\\002\\360\\000\\000B\\002C\\002\\360\\000\\000C\\002O\\002\\360\\000\\000O\\002P\\002\\360\\000\\000P\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002a\\002\\330\\004\\025\\220Q\\320\\026/\\250q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\r\\210]\\230!\\2306\\240\\021\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300a\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VY\\320Y_\\320_`\\320`i\\320ij\\320jv\\320vw\\360\\000\\000x\\001G\\002\\360\\000\\000G\\002R\\002\\360\\000\\000R\\002Y\\002\\360\\000\\000Y\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002a\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340_`\\360.\\000\\005\\014\\210;\\220a\"\"\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260!\\330\\004\\027\\320\\027(\\250\\001\\250\\030\\260\\021\\330\\004\\030\\320\\030)\\250\\021\\250(\\260!\\330\\004\\027\\320\\027(\\250\\001\\250\\030\\260\\021\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VY\\320Y_\\320_`\\320`i\\320it\\320ty\\320y\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002J\\002\\360\\000\\000J\\002W\\002\\360\\000\\000W\\002X\\002\\360\\000\\000X\\002d\\002\\360\\000\\000d\\002e\\002\\360\\000\\000e\\002t\\002\\360\\000\\000t\\002\\177\\002\\360\\000\\000\\177\\002O\\003\\360\\000\\000O\\003U\\003\\360\\000\\000U\\003V\\003\\360\\000\\000V\\003a\\003\\360\\000\\000a\\003l\\003\\360\\000\\000l\\003}\\003\\360\\000\\000}\\003C\\004\\360\\000\\000C\\004D\\004\\360\\000\\000D\\004O\\004\\360\\000\\000O\\004Z\\004\\360\\000\\000Z\\004j\\004\\360\\000\\000j\\004p\\004\\360\\000\\000p\\004q\\004\\360\\000\\000q\\004r\\004\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\320\\013\\036\\320\\0362\\260!\\200\\001\\340_`\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VY\\320Y_\\320_`\\320`i\\320it\\320ty\\320y\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002J\\002\\360\\000\\000J\\002W\\002\\360\\000\\000W\\002X\\002\\360\\000\\000X\\002d\\002\\360\\000\\000d\\002e\\002\\360\\000\\000e\\002t\\002\\360\\000\\000t\\002\\177\\002\\360\\000\\000\\177\\002F\\003\\360\\000\\000F\\003L\\003\\360\\000\\000L\\003M\\003\\360\\000\\000M\\003N\\003\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340^_\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\"\"\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250r\\260\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310+\\320UX\\320X^\\320^_\\320_h\\320hs\\320sx\\320x~\\320~\\177\\360\\000\\000@\\002I\\002\\360\\000\\000I\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002c\\002\\360\\000\\000c\\002d\\002\\360\\000\\000d\\002s\\002\\360\\000\\000s\\002~\\002\\360\\000\\000~\\002E\\003\\360\\000\\000E\\003K\\003\\360\\000\\000K\\003L\\003\\360\\000\\000L\\003M\\003\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\340[\\\\\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250B\\250a\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300{\\320RU\\320U[\\320[\\\\\\320\\\\e\\320ep\\320pu\\320u{\\320{|\\360\\000\\000}\\001F\\002\\360\\000\\000F\\002S\\002\\360\\000\\000S\\002T\\002\\360\\000\\000T\\002`\\002\\360\\000\\000`\\002a\\002\\360\\000\\000a\\002p\\002\\360\\000\\000p\\002{\\002\\360\\000\\000{\\002B\\003\\360\\000\\000B\\003H\\003\\360\\000\\000H\\003I\\003\\360\\000\\000I\\003J\\003\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250a\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\033\\320TW\\320W]\\320]^\\320^g\\320gr\\320rw\\320w}\\320}~\\360\\000\\000\\177\\001H\\002\\360\\000\\000H\\002I\\002\\360\\000\\000I\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002e\\002\\360\\000\\000e\\002p\\002\\360\\000\\000p\\002w\\002\\360\\000\\000w\\002}\\002\\360\"\"\\000\\000}\\002~\\002\\360\\000\\000~\\002\\177\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VY\\320Y_\\320_`\\320`i\\320it\\320ty\\320y\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002W\\002\\360\\000\\000W\\002X\\002\\360\\000\\000X\\002g\\002\\360\\000\\000g\\002r\\002\\360\\000\\000r\\002y\\002\\360\\000\\000y\\002\\177\\002\\360\\000\\000\\177\\002@\\003\\360\\000\\000@\\003A\\003\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340\\\\]\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250R\\250q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\013\\320SV\\320V\\\\\\320\\\\]\\320]f\\320fq\\320qv\\320v|\\320|}\\360\\000\\000~\\001G\\002\\360\\000\\000G\\002T\\002\\360\\000\\000T\\002U\\002\\360\\000\\000U\\002a\\002\\360\\000\\000a\\002b\\002\\360\\000\\000b\\002q\\002\\360\\000\\000q\\002|\\002\\360\\000\\000|\\002C\\003\\360\\000\\000C\\003I\\003\\360\\000\\000I\\003J\\003\\360\\000\\000J\\003K\\003\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]e\\320eo\\320ou\\320uv\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\230?\\250!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\026\"\"\\220r\\230\\024\\230Y\\240k\\260\\024\\260V\\2701\\270I\\300[\\320PS\\320SY\\320YZ\\320Zc\\320cn\\320ns\\320sy\\320yz\\360\\000\\000{\\001D\\002\\360\\000\\000D\\002O\\002\\360\\000\\000O\\002U\\002\\360\\000\\000U\\002[\\002\\360\\000\\000[\\002\\\\\\002\\360\\000\\000\\\\\\002e\\002\\360\\000\\000e\\002f\\002\\360\\000\\000f\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002B\\003\\360\\000\\000B\\003M\\003\\360\\000\\000M\\003T\\003\\360\\000\\000T\\003Z\\003\\360\\000\\000Z\\003[\\003\\360\\000\\000[\\003\\\\\\003\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340)*\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260!\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310=\\320XY\\320Ye\\320ef\\320fu\\320u}\\360\\000\\000~\\001H\\002\\360\\000\\000H\\002N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002P\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\026\\220f\\230J\\240a\\330\\004\\010\\210\\007\\320\\017\\037\\230q\\330\\010\\027\\220q\\230\\006\\230a\\330\\004\\013\\2101\\200\\001\\340)*\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\002\\260!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310=\\320XY\\320Ye\\320ef\\320fu\\360\\000\\000v\\001A\\002\\360\\000\\000A\\002H\\002\\360\\000\\000H\\002N\\002\\360\\000\\000N\\002O\\002\\360\\000\\000O\\002P\\002\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\340*+\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0331\\260\\022\\2601\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\035\\230b\\240\\004\\240I\\250[\\270\\004\\270F\\300!\\3009\\310M\\320YZ\\320Zf\\320fg\\320gv\\360\\000\\000w\\001B\\002\\360\\000\\000B\\002I\\002\\360\\000\\000I\\002O\\002\\360\\000\\000O\\002P\\002\"\"\\360\\000\\000P\\002Q\\002\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0331\\260\\021\\330\\004\\021\\320\\021\\\"\\240!\\2408\\2501\\330\\004\\024\\320\\024%\\240Q\\240h\\250a\\330\\004\\021\\220\\035\\230b\\240\\004\\240I\\250[\\270\\004\\270F\\300!\\3009\\310A\\310\\\\\\320YZ\\320Zi\\320it\\320t~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002i\\002\\360\\000\\000i\\002o\\002\\360\\000\\000o\\002p\\002\\360\\000\\000p\\002q\\002\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\210=\\230\\001\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2501\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300a\\300|\\320ST\\320Tc\\320cn\\320nu\\320u{\\320{|\\320|}\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\340$%\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300m\\320ST\\320T`\\320`a\\320ap\\320p{\\360\\000\\000|\\001C\\002\\360\\000\\000C\\002I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002K\\002\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0332\\260!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\036\\230r\\240\\024\\240Y\\250k\\270\\024\\270V\\3001\\300I\\310Q\\310l\\320Z[\\320[j\\320ju\\320u|\\360\\000\\000}\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002E\\002\\330\\004\\025\"\"\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0333\\2601\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\037\\240\\002\\240$\\240i\\250{\\270$\\270f\\300A\\300Y\\310a\\310|\\320[\\\\\\320\\\\k\\320kv\\320v}\\360\\000\\000~\\001D\\002\\360\\000\\000D\\002E\\002\\360\\000\\000E\\002F\\002\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\013\\2101\\200\\001\\340,-\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0333\\2602\\260Q\\330\\004\\020\\220\\016\\230a\\230x\\240q\\330\\004\\020\\220\\016\\230a\\230x\\240q\\330\\004\\021\\220\\037\\240\\002\\240$\\240i\\250{\\270$\\270f\\300A\\300Y\\310m\\320[\\\\\\320\\\\h\\320hi\\320ix\\360\\000\\000y\\001A\\002\\360\\000\\000A\\002J\\002\\360\\000\\000J\\002P\\002\\360\\000\\000P\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002d\\002\\360\\000\\000d\\002m\\002\\360\\000\\000m\\002s\\002\\360\\000\\000s\\002t\\002\\360\\000\\000t\\002u\\002\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\025\\220V\\2309\\240A\\330\\004\\010\\210\\007\\320\\017\\037\\230q\\330\\010\\026\\220a\\220v\\230Q\\330\\004\\025\\220V\\2309\\240A\\330\\004\\010\\210\\007\\320\\017\\037\\230q\\330\\010\\026\\220a\\220v\\230Q\\330\\004\\013\\210<\\220q\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0334\\260A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021!\\240\\022\\2404\\240y\\260\\013\\2704\\270v\\300Q\\300i\\310q\\320P\\\\\\320\\\\]\\320]l\\320lw\\320w~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002G\\002\\330\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0334\\260A\"\"\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021!\\240\\022\\2404\\240y\\260\\013\\2704\\270v\\300Q\\300i\\310q\\320P\\\\\\320\\\\]\\320]l\\320lt\\320t~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002G\\002\\330\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300q\\310\\014\\320TU\\320Ud\\320do\\320ov\\320v|\\320|}\\320}~\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\340%&\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033,\\250B\\250a\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\030\\230\\022\\2304\\230y\\250\\013\\2604\\260v\\270Q\\270i\\300}\\320TU\\320Ua\\320ab\\320bq\\320q|\\360\\000\\000}\\001D\\002\\360\\000\\000D\\002J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002L\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\001\\310\\034\\320UV\\320Ve\\320ep\\320pw\\320w}\\320}~\\320~\\177\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340&'\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250R\\250q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\r\\320UV\\320Vb\\320bc\\320cr\\320r}\\360\\000\\000~\\001E\\002\\360\\000\\000E\\002K\\002\\360\\000\"\"\\000K\\002L\\002\\360\\000\\000L\\002M\\002\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340'(\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\001\\330\\004\\r\\320\\r\\036\\230a\\230x\\240q\\330\\004\\r\\320\\r\\036\\230a\\230x\\240q\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\035\\320VW\\320Wc\\320cd\\320ds\\320s~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002K\\002\\360\\000\\000K\\002L\\002\\360\\000\\000L\\002W\\002\\360\\000\\000W\\002b\\002\\360\\000\\000b\\002h\\002\\360\\000\\000h\\002n\\002\\360\\000\\000n\\002o\\002\\360\\000\\000o\\002p\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2109\\220A\\200\\001\\340'(\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\035\\320VW\\320Wc\\320cd\\320ds\\320s~\\360\\000\\000\\177\\001F\\002\\360\\000\\000F\\002L\\002\\360\\000\\000L\\002M\\002\\360\\000\\000M\\002N\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\022\\320\\022#\\2401\\240H\\250A\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310!\\310<\\320WX\\320Xg\\320gr\\320ry\\320y\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002L\\002\\360\\000\\000L\\002W\\002\\360\\000\\000W\\002b\\002\\360\\000\\000b\\002h\\002\\360\\000\\000h\\002i\\002\\360\\000\\000i\\002j\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\220Q\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\230?\"\"\\250!\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\026\\220r\\230\\024\\230Y\\240k\\260\\024\\260V\\2701\\270I\\300Q\\300l\\320RS\\320Sb\\320bm\\320mt\\320tz\\320z{\\320{|\\330\\004\\025\\220Q\\220i\\230q\\330\\004\\013\\2101\\200\\001\\340()\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250r\\260\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310-\\320WX\\320Xd\\320de\\320et\\320t\\177\\360\\000\\000@\\002G\\002\\360\\000\\000G\\002M\\002\\360\\000\\000M\\002N\\002\\360\\000\\000N\\002O\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\340()\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250r\\260\\021\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\024\\320\\024%\\240Q\\240h\\250a\\330\\004\\022\\320\\022#\\2401\\240H\\250A\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310/\\320YZ\\320Zf\\320fg\\320gv\\360\\000\\000w\\001B\\002\\360\\000\\000B\\002I\\002\\360\\000\\000I\\002O\\002\\360\\000\\000O\\002P\\002\\360\\000\\000P\\002[\\002\\360\\000\\000[\\002f\\002\\360\\000\\000f\\002s\\002\\360\\000\\000s\\002y\\002\\360\\000\\000y\\002z\\002\\360\\000\\000z\\002E\\003\\360\\000\\000E\\003P\\003\\360\\000\\000P\\003[\\003\\360\\000\\000[\\003a\\003\\360\\000\\000a\\003b\\003\\360\\000\\000b\\003c\\003\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\210:\\320\\025%\\240Q\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0330\\260\\001\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\034\\230R\\230t\\2409\\250K\\260t\\2706\\300\\021\\300)\\310;\\320VZ\\320Z`\\320`a\"\"\\320aj\\320ju\\320ux\\320x~\\320~\\177\\360\\000\\000@\\002I\\002\\360\\000\\000I\\002T\\002\\360\\000\\000T\\002Y\\002\\360\\000\\000Y\\002_\\002\\360\\000\\000_\\002`\\002\\360\\000\\000`\\002i\\002\\360\\000\\000i\\002j\\002\\360\\000\\000j\\002v\\002\\360\\000\\000v\\002w\\002\\360\\000\\000w\\002F\\003\\360\\000\\000F\\003Q\\003\\360\\000\\000Q\\003X\\003\\360\\000\\000X\\003^\\003\\360\\000\\000^\\003_\\003\\360\\000\\000_\\003`\\003\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0334\\260A\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021!\\240\\022\\2404\\240y\\260\\013\\2704\\270v\\300Q\\300i\\310{\\320Z^\\320^d\\320de\\320en\\320ny\\320y|\\360\\000\\000}\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002M\\002\\360\\000\\000M\\002X\\002\\360\\000\\000X\\002]\\002\\360\\000\\000]\\002c\\002\\360\\000\\000c\\002d\\002\\360\\000\\000d\\002m\\002\\360\\000\\000m\\002n\\002\\360\\000\\000n\\002z\\002\\360\\000\\000z\\002{\\002\\360\\000\\000{\\002J\\003\\360\\000\\000J\\003R\\003\\360\\000\\000R\\003\\\\\\003\\360\\000\\000\\\\\\003b\\003\\360\\000\\000b\\003c\\003\\360\\000\\000c\\003d\\003\\330\\004\\025\\220Q\\320\\026)\\250\\021\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033:\\270!\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021'\\240r\\250\\024\\250Y\\260k\\300\\024\\300V\\3101\\310I\\320U`\\320`d\\320dj\\320jk\\320kt\\320t\\177\\360\\000\\000@\\002C\\002\\360\\000\\000C\\002I\\002\\360\\000\\000I\\002J\\002\\360\\000\\000J\\002S\\002\\360\\000\\000S\\002^\\002\\360\\000\\000^\\002c\\002\\360\\000\\000c\\002i\\002\\360\\000\\000i\\002j\\002\\360\"\"\\000\\000j\\002s\\002\\360\\000\\000s\\002t\\002\\360\\000\\000t\\002@\\003\\360\\000\\000@\\003A\\003\\360\\000\\000A\\003P\\003\\360\\000\\000P\\003X\\003\\360\\000\\000X\\003b\\003\\360\\000\\000b\\003h\\003\\360\\000\\000h\\003i\\003\\360\\000\\000i\\003j\\003\\330\\004\\025\\220Q\\320\\026/\\250q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033;\\2701\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021(\\250\\002\\250$\\250i\\260{\\300$\\300f\\310A\\310Y\\320Va\\320ae\\320ek\\320kl\\320lu\\360\\000\\000v\\001A\\002\\360\\000\\000A\\002D\\002\\360\\000\\000D\\002J\\002\\360\\000\\000J\\002K\\002\\360\\000\\000K\\002T\\002\\360\\000\\000T\\002_\\002\\360\\000\\000_\\002d\\002\\360\\000\\000d\\002j\\002\\360\\000\\000j\\002k\\002\\360\\000\\000k\\002t\\002\\360\\000\\000t\\002u\\002\\360\\000\\000u\\002A\\003\\360\\000\\000A\\003B\\003\\360\\000\\000B\\003Q\\003\\360\\000\\000Q\\003Y\\003\\360\\000\\000Y\\003c\\003\\360\\000\\000c\\003i\\003\\360\\000\\000i\\003j\\003\\360\\000\\000j\\003k\\003\\330\\004\\025\\220Q\\320\\0260\\260\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033/\\250q\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\033\\230B\\230d\\240)\\250;\\260d\\270&\\300\\001\\300\\031\\310+\\320UY\\320Y_\\320_`\\320`i\\320it\\320tw\\320w}\\320}~\\360\\000\\000\\177\\001H\\002\\360\\000\\000H\\002S\\002\\360\\000\\000S\\002X\\002\\360\\000\\000X\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002h\\002\\360\\000\\000h\\002i\\002\\360\\000\\000i\\002u\\002\\360\\000\\000u\\002v\\002\\360\\000\\000v\\002E\\003\\360\\000\\000E\\003M\\003\\360\\000\\000M\\003W\\003\\360\\000\\000W\\003]\"\"\\003\\360\\000\\000]\\003^\\003\\360\\000\\000^\\003_\\003\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0335\\260Q\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021\\\"\\240\\\"\\240D\\250\\t\\260\\033\\270D\\300\\006\\300a\\300y\\320P[\\320[_\\320_e\\320ef\\320fo\\320oz\\320z}\\360\\000\\000~\\001D\\002\\360\\000\\000D\\002E\\002\\360\\000\\000E\\002N\\002\\360\\000\\000N\\002Y\\002\\360\\000\\000Y\\002^\\002\\360\\000\\000^\\002d\\002\\360\\000\\000d\\002e\\002\\360\\000\\000e\\002n\\002\\360\\000\\000n\\002o\\002\\360\\000\\000o\\002{\\002\\360\\000\\000{\\002|\\002\\360\\000\\000|\\002K\\003\\360\\000\\000K\\003S\\003\\360\\000\\000S\\003]\\003\\360\\000\\000]\\003c\\003\\360\\000\\000c\\003d\\003\\360\\000\\000d\\003e\\003\\330\\004\\025\\220Q\\320\\026*\\250!\\330\\004\\013\\2101\\200\\001\\340|}\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0332\\260\\\"\\260A\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\036\\230r\\240\\024\\240Y\\250k\\270\\024\\270V\\3001\\300I\\310[\\320X\\\\\\320\\\\b\\320bc\\320cl\\320lw\\320wz\\360\\000\\000{\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002K\\002\\360\\000\\000K\\002V\\002\\360\\000\\000V\\002[\\002\\360\\000\\000[\\002a\\002\\360\\000\\000a\\002b\\002\\360\\000\\000b\\002k\\002\\360\\000\\000k\\002y\\002\\360\\000\\000y\\002z\\002\\360\\000\\000z\\002F\\003\\360\\000\\000F\\003G\\003\\360\\000\\000G\\003V\\003\\360\\000\\000V\\003^\\003\\360\\000\\000^\\003h\\003\\360\\000\\000h\\003n\\003\\360\\000\\000n\\003o\\003\\360\\000\\000o\\003p\\003\\330\\004\\025\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\"\"\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2501\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QU\\320U[\\320[\\\\\\320\\\\e\\320ep\\320ps\\320sy\\320yz\\360\\000\\000{\\001D\\002\\360\\000\\000D\\002O\\002\\360\\000\\000O\\002T\\002\\360\\000\\000T\\002Z\\002\\360\\000\\000Z\\002[\\002\\360\\000\\000[\\002d\\002\\360\\000\\000d\\002e\\002\\360\\000\\000e\\002q\\002\\360\\000\\000q\\002r\\002\\360\\000\\000r\\002A\\003\\360\\000\\000A\\003L\\003\\360\\000\\000L\\003S\\003\\360\\000\\000S\\003Y\\003\\360\\000\\000Y\\003Z\\003\\360\\000\\000Z\\003[\\003\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0331\\260\\021\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\035\\230b\\240\\004\\240I\\250[\\270\\004\\270F\\300!\\3009\\310K\\320W[\\320[a\\320ab\\320bk\\320kv\\320vy\\320y\\177\\360\\000\\000@\\002A\\002\\360\\000\\000A\\002J\\002\\360\\000\\000J\\002U\\002\\360\\000\\000U\\002Z\\002\\360\\000\\000Z\\002`\\002\\360\\000\\000`\\002a\\002\\360\\000\\000a\\002j\\002\\360\\000\\000j\\002k\\002\\360\\000\\000k\\002w\\002\\360\\000\\000w\\002x\\002\\360\\000\\000x\\002G\\003\\360\\000\\000G\\003O\\003\\360\\000\\000O\\003Y\\003\\360\\000\\000Y\\003_\\003\\360\\000\\000_\\003`\\003\\360\\000\\000`\\003a\\003\\330\\004\\025\\220Q\\320\\026&\\240a\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\"\"\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0336\\260a\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021#\\2402\\240T\\250\\031\\260+\\270T\\300\\026\\300q\\310\\t\\320Q\\\\\\320\\\\`\\320`f\\320fg\\320gp\\320p{\\320{~\\360\\000\\000\\177\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002O\\002\\360\\000\\000O\\002Z\\002\\360\\000\\000Z\\002_\\002\\360\\000\\000_\\002e\\002\\360\\000\\000e\\002f\\002\\360\\000\\000f\\002o\\002\\360\\000\\000o\\002p\\002\\360\\000\\000p\\002|\\002\\360\\000\\000|\\002}\\002\\360\\000\\000}\\002L\\003\\360\\000\\000L\\003T\\003\\360\\000\\000T\\003^\\003\\360\\000\\000^\\003d\\003\\360\\000\\000d\\003e\\003\\360\\000\\000e\\003f\\003\\330\\004\\025\\220Q\\320\\026+\\2501\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0332\\260!\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\036\\230r\\240\\024\\240Y\\250k\\270\\024\\270V\\3001\\300I\\310[\\320X\\\\\\320\\\\b\\320bc\\320cl\\320lw\\320wz\\360\\000\\000{\\001A\\002\\360\\000\\000A\\002B\\002\\360\\000\\000B\\002K\\002\\360\\000\\000K\\002V\\002\\360\\000\\000V\\002[\\002\\360\\000\\000[\\002a\\002\\360\\000\\000a\\002b\\002\\360\\000\\000b\\002k\\002\\360\\000\\000k\\002l\\002\\360\\000\\000l\\002x\\002\\360\\000\\000x\\002y\\002\\360\\000\\000y\\002H\\003\\360\\000\\000H\\003P\\003\\360\\000\\000P\\003Z\\003\\360\\000\\000Z\\003`\\003\\360\\000\\000`\\003a\\003\\360\\000\\000a\\003b\\003\\330\\004\\025\\220Q\\320\\026'\\240q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0333\\2601\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\037\\240\\002\"\"\\240$\\240i\\250{\\270$\\270f\\300A\\300Y\\310k\\320Y]\\320]c\\320cd\\320dm\\320mx\\320x{\\360\\000\\000|\\001B\\002\\360\\000\\000B\\002C\\002\\360\\000\\000C\\002L\\002\\360\\000\\000L\\002W\\002\\360\\000\\000W\\002\\\\\\002\\360\\000\\000\\\\\\002b\\002\\360\\000\\000b\\002c\\002\\360\\000\\000c\\002l\\002\\360\\000\\000l\\002m\\002\\360\\000\\000m\\002y\\002\\360\\000\\000y\\002z\\002\\360\\000\\000z\\002I\\003\\360\\000\\000I\\003Q\\003\\360\\000\\000Q\\003[\\003\\360\\000\\000[\\003a\\003\\360\\000\\000a\\003b\\003\\360\\000\\000b\\003c\\003\\330\\004\\025\\220Q\\320\\026(\\250\\001\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0338\\270\\001\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021%\\240R\\240t\\2509\\260K\\270t\\3006\\310\\021\\310)\\320S^\\320^b\\320bh\\320hi\\320ir\\320r}\\360\\000\\000~\\001A\\002\\360\\000\\000A\\002G\\002\\360\\000\\000G\\002H\\002\\360\\000\\000H\\002Q\\002\\360\\000\\000Q\\002\\\\\\002\\360\\000\\000\\\\\\002a\\002\\360\\000\\000a\\002g\\002\\360\\000\\000g\\002h\\002\\360\\000\\000h\\002q\\002\\360\\000\\000q\\002r\\002\\360\\000\\000r\\002~\\002\\360\\000\\000~\\002\\177\\002\\360\\000\\000\\177\\002N\\003\\360\\000\\000N\\003V\\003\\360\\000\\000V\\003`\\003\\360\\000\\000`\\003f\\003\\360\\000\\000f\\003g\\003\\360\\000\\000g\\003h\\003\\330\\004\\025\\220Q\\320\\026-\\250Q\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0339\\270\\021\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021&\\240b\\250\\004\\250I\\260[\\300\\004\\300F\\310!\\3109\\320T_\\320_c\\320ci\\320ij\\320js\\320s~\\360\\000\\000\\177\\001B\\002\\360\\000\\000B\\002H\\002\\360\\000\\000H\\002I\"\"\\002\\360\\000\\000I\\002R\\002\\360\\000\\000R\\002]\\002\\360\\000\\000]\\002b\\002\\360\\000\\000b\\002h\\002\\360\\000\\000h\\002i\\002\\360\\000\\000i\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002\\177\\002\\360\\000\\000\\177\\002@\\003\\360\\000\\000@\\003O\\003\\360\\000\\000O\\003W\\003\\360\\000\\000W\\003a\\003\\360\\000\\000a\\003g\\003\\360\\000\\000g\\003h\\003\\360\\000\\000h\\003i\\003\\330\\004\\025\\220Q\\320\\026.\\250a\\330\\004\\013\\2101\\200\\001\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\013\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\026\\240u\\250A\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3004\\300x\\310z\\320Y\\\\\\320\\\\d\\320dn\\320ns\\320st\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\0337\\260q\\330\\004\\021\\220\\036\\230q\\240\\010\\250\\001\\330\\004\\021\\320\\021$\\240B\\240d\\250)\\260;\\270d\\300&\\310\\001\\310\\031\\320R]\\320]a\\320ag\\320gh\\320hq\\320q|\\320|\\177\\360\\000\\000@\\002F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002P\\002\\360\\000\\000P\\002[\\002\\360\\000\\000[\\002`\\002\\360\\000\\000`\\002f\\002\\360\\000\\000f\\002g\\002\\360\\000\\000g\\002p\\002\\360\\000\\000p\\002q\\002\\360\\000\\000q\\002}\\002\\360\\000\\000}\\002~\\002\\360\\000\\000~\\002M\\003\\360\\000\\000M\\003U\\003\\360\\000\\000U\\003_\\003\\360\\000\\000_\\003e\\003\\360\\000\\000e\\003f\\003\\360\\000\\000f\\003g\\003\\330\\004\\025\\220Q\\320\\026,\\250A\\330\\004\\013\\2101\\200\\001\\340bc\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\030\\230\\022\\2306\\240\\030\\250\\022\\2504\\250v\\260X\\270R\\270t\\300<\\310{\\320Zg\\320gt\\320tu\\360\\000\\000v\\001B\\002\\360\\000\\000B\\002C\\002\\360\\000\\000C\\002R\\002\\360\\000\\000R\\002S\\002\\360\\000\\000S\\002T\\002\\330\\004\\025\\220Q\\220k\\240\\021\\330\\004\\013\\2101\\200\\001\\340c}\\360\\000\\000~\\001X\\002\\360\\000\\000X\\002m\\002\\360\\000\\000m\\002G\\003\\360\\000\\000G\\003H\\003\\3606\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\"\"\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\017\\210q\\330\\004\\017\\210q\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320P[\\320[h\\320hw\\360\\000\\000x\\001G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002e\\002\\360\\000\\000e\\002t\\002\\360\\000\\000t\\002u\\002\\360\\000\\000u\\002A\\003\\360\\000\\000A\\003B\\003\\360\\000\\000B\\003Q\\003\\360\\000\\000Q\\003R\\003\\360\\000\\000R\\003]\\003\\360\\000\\000]\\003^\\003\\360\\000\\000^\\003_\\003\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\210;\\220a\\200\\001\\340cd\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\031\\230\\\"\\230F\\240(\\250\\\"\\250D\\260\\006\\260h\\270b\\300\\004\\300L\\320P[\\320[h\\320hu\\320uv\\360\\000\\000w\\001C\\002\\360\\000\\000C\\002D\\002\\360\\000\\000D\\002S\\002\\360\\000\\000S\\002T\\002\\360\\000\\000T\\002U\\002\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\\200\\001\\340d}\\360\\000\\000~\\001W\\002\\360\\000\\000W\\002X\\002\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q\\\\\\320\\\\i\\320iw\\360\\000\\000x\\001F\\002\\360\\000\\000F\\002T\\002\\360\\000\\000T\\002U\\002\\360\\000\\000U\\002a\\002\\360\\000\\000a\\002b\\002\\360\\000\\000b\\002q\\002\\360\\000\\000q\\002r\\002\\360\\000\\000r\\002s\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340d~\\360\\000\\000\\177\\001Y\\002\\360\\000\\000Y\\002Z\\002\\3602\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\017\\210q\\330\\004\\017\\210q\"\"\\330\\004\\021\\220\\032\\2302\\230V\\2408\\2502\\250T\\260\\026\\260x\\270r\\300\\024\\300\\\\\\320Q\\\\\\320\\\\i\\320ix\\360\\000\\000y\\001H\\002\\360\\000\\000H\\002W\\002\\360\\000\\000W\\002X\\002\\360\\000\\000X\\002d\\002\\360\\000\\000d\\002e\\002\\360\\000\\000e\\002t\\002\\360\\000\\000t\\002u\\002\\360\\000\\000u\\002@\\003\\360\\000\\000@\\003A\\003\\360\\000\\000A\\003B\\003\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\210;\\220a\\200\\001\\340ef\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\033\\230B\\230f\\240H\\250B\\250d\\260&\\270\\010\\300\\002\\300$\\300l\\320R]\\320]j\\320jw\\320wx\\360\\000\\000y\\001E\\002\\360\\000\\000E\\002F\\002\\360\\000\\000F\\002U\\002\\360\\000\\000U\\002V\\002\\360\\000\\000V\\002W\\002\\330\\004\\025\\220Q\\220n\\240A\\330\\004\\013\\2101\\200\\001\\340fg\\3602\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\027\\220q\\330\\004\\030\\230\\001\\330\\004\\027\\220q\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S^\\320^k\\320kx\\320xy\\360\\000\\000z\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002j\\002\\360\\000\\000j\\002k\\002\\360\\000\\000k\\002\\177\\002\\360\\000\\000\\177\\002@\\003\\360\\000\\000@\\003A\\003\\330\\004\\025\\220Q\\220o\\240Q\\330\\004\\013\\320\\013\\036\\320\\0362\\260!\\200\\001\\340fg\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\020\\220\\t\\230\\024\\230Q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\017\\210y\\230\\003\\2301\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\021\\220\\031\\230%\\230q\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\016\\210a\\330\\004\\021\\220\\034\\230R\\230v\\240X\\250R\\250t\\2606\\270\\030\\300\\022\\3004\\300|\\320S^\\320^k\\320kx\\320xy\\360\\000\\000z\\001F\\002\\360\\000\\000F\\002G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002W\\002\\360\\000\\000W\\002X\\002\\330\\004\\025\\220Q\\220o\"\"\\240Q\\330\\004\\013\\2101\\200\\001\\340\\004\\022\\320\\022'\\240q\\250\\r\\260[\\300\\013\\3101\\330\\004\\025\\220Q\\320\\026.\\250a\\200\\001\\360\\014\\000\\005\\020\\210q\\330\\004\\020\\220\\001\\220\\031\\230!\\2309\\240A\\330\\004\\020\\220\\001\\220\\021\\330\\004\\013\\2101\\330\\004\\010\\210\\007\\210q\\320\\0201\\260\\022\\2601\\340\\004\\022\\220)\\2301\\230A\\330\\004\\010\\210\\007\\210q\\220\\001\\330\\004\\010\\210\\016\\220a\\330\\010\\020\\220\\013\\2301\\230A\\330\\010\\013\\2104\\210z\\230\\021\\230'\\240\\021\\330\\014\\024\\220A\\330\\010\\014\\210G\\2201\\320\\024$\\240L\\260\\001\\340\\004\\r\\210Y\\220a\\220q\\330\\004\\007\\200q\\330\\010\\014\\210G\\2201\\220A\\330\\004\\010\\210\\t\\220\\021\\330\\010\\014\\210G\\2201\\320\\024$\\240G\\2506\\260\\021\\260!\\330\\010\\021\\220\\027\\230\\001\\230\\035\\240g\\250V\\2601\\260A\\330\\010\\020\\220\\001\\220\\031\\230&\\240\\001\\240\\021\\330\\010\\013\\2106\\220\\023\\220A\\330\\014\\020\\220\\002\\220%\\220s\\230%\\230q\\240\\001\\240\\024\\240R\\240t\\2507\\260\\\"\\260G\\2701\\270F\\300!\\3001\\340\\004\\016\\210i\\220q\\230\\001\\330\\004\\010\\210\\007\\210q\\220\\001\\330\\004\\010\\210\\n\\220!\\330\\010\\013\\2107\\220#\\220Q\\330\\014\\025\\220Q\\330\\010\\014\\210G\\2201\\220I\\230R\\230q\\340\\004\\r\\210W\\220A\\220T\\230\\025\\230a\\230q\\330\\004\\r\\210W\\220A\\220Q\\330\\004\\010\\210\\007\\210q\\220\\003\\2202\\220U\\230!\\2301\\330\\004\\024\\220D\\230\\005\\230Q\\230a\\330\\004\\013\\210:\\220Q\\200\\001\\340'?\\270q\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\r\\210T\\220\\026\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\021\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\r\\270Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\035\\320V^\\320^_\\320_k\\320kl\\320l{\\360\\000\\000|\\001G\\002\\360\\000\\000G\\002N\\002\\360\\000\\000N\\002T\\002\\360\\000\\000T\\002U\\002\\360\\000\\000U\\002V\\002\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340]v\\360\\000\\000w\\001P\\002\\360\\000\\000P\\002Q\\002\\360*\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\"\"\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\016\\270n\\310A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\033\\320TW\\320W]\\320]^\\320^g\\320gr\\320rw\\320w}\\320}~\\360\\000\\000\\177\\001H\\002\\360\\000\\000H\\002V\\002\\360\\000\\000V\\002d\\002\\360\\000\\000d\\002r\\002\\360\\000\\000r\\002s\\002\\360\\000\\000s\\002\\177\\002\\360\\000\\000\\177\\002@\\003\\360\\000\\000@\\003O\\003\\360\\000\\000O\\003Z\\003\\360\\000\\000Z\\003a\\003\\360\\000\\000a\\003g\\003\\360\\000\\000g\\003h\\003\\360\\000\\000h\\003i\\003\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\2101\\200\\001\\340\\\\v\\360\\000\\000w\\001Q\\002\\360\\000\\000Q\\002f\\002\\360\\000\\000f\\002@\\003\\360\\000\\000@\\003A\\003\\3602\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250R\\250\\177\\270o\\310_\\320\\\\k\\320kl\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\013\\320SV\\320V\\\\\\320\\\\]\\320]f\\320fq\\320qv\\320v|\\320|}\\360\\000\\000~\\001G\\002\\360\\000\\000G\\002V\\002\\360\\000\\000V\\002e\\002\\360\\000\\000e\\002t\\002\\360\\000\\000t\\002C\\003\\360\\000\\000C\\003R\\003\\360\\000\\000R\\003S\\003\\360\\000\\000S\\003_\\003\\360\\000\\000_\\003`\\003\\360\\000\\000`\\003o\\003\\360\\000\\000o\\003z\\003\\360\\000\\000z\\003B\\004\\360\\000\\000B\\004H\\004\\360\\000\\000H\\004I\\004\\360\\000\\000I\\004T\\004\\360\\000\\000T\\004_\\004\\360\\000\\000_\\004g\\004\\360\\000\\000g\\004m\\004\\360\\000\\000m\\004n\\004\\360\\000\\000n\\004o\\004\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\210;\\220a\\200\\001\\340]w\\360\\000\\000x\\001R\\002\\360\\000\\000R\\002S\\002\\360.\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240a\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\"\"\\320]^\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033.\\250b\\260\\017\\270\\177\\310a\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\017\\320\\017 \\240\\001\\240\\030\\250\\021\\330\\004\\021\\220\\032\\2302\\230T\\240\\031\\250+\\260T\\270\\026\\270q\\300\\t\\310\\033\\320TW\\320W]\\320]^\\320^g\\320gr\\320rw\\320w}\\320}~\\360\\000\\000\\177\\001H\\002\\360\\000\\000H\\002W\\002\\360\\000\\000W\\002f\\002\\360\\000\\000f\\002u\\002\\360\\000\\000u\\002v\\002\\360\\000\\000v\\002B\\003\\360\\000\\000B\\003C\\003\\360\\000\\000C\\003R\\003\\360\\000\\000R\\003]\\003\\360\\000\\000]\\003e\\003\\360\\000\\000e\\003k\\003\\360\\000\\000k\\003l\\003\\360\\000\\000l\\003w\\003\\360\\000\\000w\\003B\\004\\360\\000\\000B\\004J\\004\\360\\000\\000J\\004P\\004\\360\\000\\000P\\004Q\\004\\360\\000\\000Q\\004R\\004\\330\\004\\025\\220Q\\220m\\2401\\330\\004\\013\\210;\\220a\\200\\001\\340wx\\360&\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]e\\320eo\\320ou\\320uv\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033+\\2502\\250Q\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\027\\230\\002\\230$\\230i\\240{\\260$\\260f\\270A\\270Y\\300k\\320QT\\320TZ\\320Z[\\320[d\\320do\\320ot\\320tz\\320z{\\360\\000\\000|\\001E\\002\\360\\000\\000E\\002P\\002\\360\\000\\000P\\002V\\002\\360\\000\\000V\\002\\\\\\002\\360\\000\\000\\\\\\002]\\002\\360\\000\\000]\\002f\\002\\360\\000\\000f\\002s\\002\\360\\000\\000s\\002t\\002\\360\\000\\000t\\002@\\003\\360\\000\\000@\\003A\\003\\360\\000\\000A\\003P\\003\\360\\000\\000P\\003[\\003\\360\\000\\000[\\003b\\003\\360\\000\\000b\\003h\\003\\360\\000\\000h\\003i\\003\\360\\000\\000i\\003j\\003\\330\\004\\025\\220Q\\220j\\240\\001\\330\\004\\013\\2101\\200\\001\\330\\004\\007\\200y\\220\\003\\2201\\330\\010\\017\\210q\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\"\"\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\330\\t\\022\\220#\\220Q\\330\\010\\026\\220a\\340\\010\\026\\220a\\330\\004\\n\\210)\\2201\\220A\\330\\010\\027\\220z\\240\\021\\200\\001\\360\\004\\000z\\001R\\002\\360\\000\\000R\\002S\\002\\360(\\000\\005\\014\\210;\\220a\\220q\\330\\004\\n\\210+\\220Q\\220a\\330\\004\\014\\210K\\220q\\230\\001\\330\\004\\r\\210[\\230\\001\\230\\021\\330\\004\\r\\210]\\230!\\2306\\240\\025\\240g\\250Q\\330\\004\\r\\210]\\230!\\2308\\240:\\250T\\260\\030\\270\\032\\3003\\300h\\310j\\320X]\\320]e\\320eo\\320ou\\320uv\\330\\004\\r\\210U\\220'\\230\\022\\2307\\240\\\"\\240A\\330\\004\\017\\210w\\220e\\320\\033-\\250R\\250}\\270A\\330\\004\\016\\320\\016\\037\\230q\\240\\010\\250\\001\\330\\004\\021\\220\\031\\230\\\"\\230D\\240\\t\\250\\033\\260D\\270\\006\\270a\\270y\\310\\013\\320SV\\320V\\\\\\320\\\\]\\320]f\\320fq\\320qv\\320v|\\320|}\\360\\000\\000~\\001G\\002\\360\\000\\000G\\002R\\002\\360\\000\\000R\\002X\\002\\360\\000\\000X\\002^\\002\\360\\000\\000^\\002_\\002\\360\\000\\000_\\002h\\002\\360\\000\\000h\\002u\\002\\360\\000\\000u\\002B\\003\\360\\000\\000B\\003C\\003\\360\\000\\000C\\003O\\003\\360\\000\\000O\\003P\\003\\360\\000\\000P\\003_\\003\\360\\000\\000_\\003j\\003\\360\\000\\000j\\003q\\003\\360\\000\\000q\\003w\\003\\360\\000\\000w\\003x\\003\\360\\000\\000x\\003y\\003\\330\\004\\025\\220Q\\220l\\240!\\330\\004\\013\\2101\";\n    PyObject *data = NULL;\n    CYTHON_UNUSED_VAR(__Pyx_DecompressString);\n    #endif\n    PyObject **stringtab = __pyx_mstate->__pyx_string_tab;\n    Py_ssize_t pos = 0;\n    for (int i = 0; i < 947; i++) {\n      Py_ssize_t bytes_length = index[i].length;\n      PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);\n      if (likely(string) && i >= 97) PyUnicode_InternInPlace(&string);\n      if (unlikely(!string)) {\n        Py_XDECREF(data);\n        __PYX_ERR(0, 1, __pyx_L1_error)\n      }\n      stringtab[i] = string;\n      pos += bytes_length;\n    }\n    for (int i = 947; i < 1153; i++) {\n      Py_ssize_t bytes_length = index[i].length;\n      PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);\n      stringtab[i] = string;\n      pos += bytes_length;\n      if (unlikely(!string)) {\n        Py_XDECREF(data);\n        __PYX_ERR(0, 1, __pyx_L1_error)\n      }\n    }\n    Py_XDECREF(data);\n    for (Py_ssize_t i = 0; i < 1153; i++) {\n      if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {\n        __PYX_ERR(0, 1, __pyx_L1_error)\n      }\n    }\n    #if CYTHON_IMMORTAL_CONSTANTS\n    {\n      PyObject **table = stringtab + 947;\n      for (Py_ssize_t i=0; i<206; ++i) {\n        #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n        #if PY_VERSION_HEX < 0x030E0000\n        if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)\n        #else\n        if (PyUnstable_Object_IsUniquelyReferenced(table[i]))\n        #endif\n        {\n          Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);\n        }\n        #else\n        Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);\n        #endif\n      }\n    }\n    #endif\n  }\n  {\n    PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0;\n    int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,9,12,16,32,64};\n    int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096};\n    int32_t const cint_constants_4[] = {16777216L,67108864L,134217728L,268435456L};\n    for (int i = 0; i < 22; i++) {\n      numbertab[i] = PyLong_FromLong((i < 12 ? cint_constants_1[i - 0] : (i < 18 ? cint_constants_2[i - 12] : cint_constants_4[i - 18])));\n      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)\n    }\n  }\n  #if CYTHON_IMMORTAL_CONSTANTS\n  {\n    PyObject **table = __pyx_mstate->__pyx_number_tab;\n    for (Py_ssize_t i=0; i<22; ++i) {\n      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n      #if PY_VERSION_HEX < 0x030E0000\n      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)\n      #else\n      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))\n      #endif\n      {\n        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);\n      }\n      #else\n      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);\n      #endif\n    }\n  }\n  #endif\n  return 0;\n  __pyx_L1_error:;\n  return -1;\n}\n/* #### Code section: init_codeobjects ### */\ntypedef struct {\n    unsigned int argcount : 4;\n    unsigned int num_posonly_args : 1;\n    unsigned int num_kwonly_args : 1;\n    unsigned int nlocals : 5;\n    unsigned int flags : 10;\n    unsigned int first_line : 13;\n} __Pyx_PyCode_New_function_description;\n/* NewCodeObj.proto */\nstatic PyObject* __Pyx_PyCode_New(\n        const __Pyx_PyCode_New_function_description descr,\n        PyObject * const *varnames,\n        PyObject *filename,\n        PyObject *funcname,\n        PyObject *line_table,\n        PyObject *tuple_dedup_map\n);\n\n\nstatic int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {\n  PyObject* tuple_dedup_map = PyDict_New();\n  if (unlikely(!tuple_dedup_map)) return -1;\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_check_success, __pyx_mstate->__pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_initialize, __pyx_mstate->__pyx_kp_b_iso88591_Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 55};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_shutdown, __pyx_mstate->__pyx_kp_b_iso88591_a_QoQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 63};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_type};\n    __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_getitem, __pyx_mstate->__pyx_kp_b_iso88591_A_t81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 90};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_id};\n    __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_Qa_q_A_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 96};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_id};\n    __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_Qa_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 102};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 107};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value};\n    __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_rangetype, __pyx_mstate->__pyx_n_u_avgperiod, __pyx_mstate->__pyx_n_u_factor, __pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 129};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_ret_code};\n    __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_2_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband};\n    __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 181};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 242};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 273};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 308};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 341};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 374};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 407};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup};\n    __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 442};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 474};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 503};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 532};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 565};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 597};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 628};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband};\n    __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 668};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 701};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 733};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 766};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 798};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 830};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 862};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 894};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 926};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 958};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 990};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1024};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1056};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1088};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1120};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1152};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1184};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1216};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1250};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1282};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1314};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1346};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1378};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1412};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1446};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1478};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1510};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1542};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1574};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1606};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1638};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1670};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1702};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1734};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1766};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1798};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1830};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1862};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1894};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1926};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1958};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1990};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2022};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2054};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2086};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2120};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2154};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2188};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2220};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2252};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2284};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2316};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2348};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2380};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2412};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2444};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2476};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2508};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2540};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2572};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2604};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2636};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2668};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2700};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2732};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2761};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2792};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2825};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2854};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2883};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2914};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2945};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2978};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3009};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3038};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3067};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3096};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3125};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature};\n    __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3157};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine};\n    __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3189};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3218};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3247};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3279};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3310};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3341};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3372};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3403};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3434};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3463};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3492};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3524};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3563};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3605};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3642};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama};\n    __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3677};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3712};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3743};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i};\n    __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3777};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3807};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3841};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3872};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3904};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3935};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i};\n    __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3969};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax};\n    __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4003};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outmaxidx_data};\n    __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4043};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4076};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4108};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4139};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4170};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4203};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4234};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4267};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4299};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4332};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4363};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4394};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4425};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4456};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4487};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4520};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4559};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4588};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4617};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4648};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4677};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4709};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd};\n    __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4749};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd};\n    __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4787};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd};\n    __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4824};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4855};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4886};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4918};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4947};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4976};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5007};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5038};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5069};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5100};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5131};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5162};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5197};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5229};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5260};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5293};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 74};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s};\n    __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_uAS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 77};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b};\n    __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 82};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s};\n    __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 85};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b};\n    __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 117};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_func_object, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs};\n    __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 130};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_output_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_local_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 172};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 179};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_function_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 186};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 193};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_input_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 204};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series};\n    __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 216};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local};\n    __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 227};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_missing_keys, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_missing};\n    __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_opt_input};\n    __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_parameters, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 286};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_parameters, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_value};\n    __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_parameters, __pyx_mstate->__pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 301};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_update_info, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_skip_first, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_param_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_function_args, __pyx_mstate->__pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 336};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_holder, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type, __pyx_mstate->__pyx_n_u_lookback};\n    __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 357};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ret};\n    __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_names, __pyx_mstate->__pyx_kp_b_iso88591_A_d_q_4z_q_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 367};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_index};\n    __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 399};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays};\n    __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_run, __pyx_mstate->__pyx_kp_b_iso88591_N_1_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 411};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_opt_input_values, __pyx_mstate->__pyx_n_u_price_series_name_values, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_arg, __pyx_mstate->__pyx_n_u_msg, __pyx_mstate->__pyx_n_u_no_existing_input_arrays, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_n};\n    __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 477};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_input_price_series_names_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 489};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_series, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_results, __pyx_mstate->__pyx_n_u_keys, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_output};\n    __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 520};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type};\n    __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_check_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 535};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_value};\n    __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 545};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_uBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 548};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_unicode, __pyx_mstate->__pyx_kp_b_iso88591_A_wat81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 551};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};\n    __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 565};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_groups, __pyx_mstate->__pyx_n_u_i};\n    __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getGroupTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 577};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_group, __pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_functions, __pyx_mstate->__pyx_n_u_i};\n    __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 589};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_flag, __pyx_mstate->__pyx_n_u_flags_lookup_dict, __pyx_mstate->__pyx_n_u_value_range, __pyx_mstate->__pyx_n_u_min_int, __pyx_mstate->__pyx_n_u_max_int, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_i};\n    __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_flags, __pyx_mstate->__pyx_kp_b_iso88591_5_t_Qm1_d_1_c_d_3a_Q_c_d_3a_Q_u, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 648};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode};\n    __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncInfo, __pyx_mstate->__pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 667};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 688};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_default_value};\n    __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 710};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name};\n    __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOutputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 730};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func_info, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_n_u_func_line, __pyx_mstate->__pyx_n_u_func_args, __pyx_mstate->__pyx_n_u_docs, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_params, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_n_u_output, __pyx_mstate->__pyx_n_u_documentation};\n    __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband};\n    __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 77};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 113};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 183};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADX, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 218};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 253};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_APO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup};\n    __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROON, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 319};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 351};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 378};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 405};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATR, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 440};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 476};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 505};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband};\n    __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 543};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BETA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 576};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 612};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CCI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 647};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 683};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 719};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 755};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 791};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 827};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 863};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 899};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 937};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 973};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1009};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1045};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1081};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1117};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1153};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1191};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1227};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1263};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1299};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1335};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1373};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1411};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1447};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1483};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1519};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1555};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1591};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1627};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1663};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1699};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1735};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1771};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1807};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1843};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1879};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1915};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1951};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1987};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2023};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2059};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2095};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2131};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2169};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2207};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2245};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2281};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2317};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2353};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2389};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2425};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2461};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2497};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2533};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2569};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2605};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2641};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2677};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2713};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2749};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2785};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2821};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2857};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2884};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2913};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2946};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2973};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3000};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3029};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3060};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DX, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3095};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3124};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3151};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3178};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3205};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3232};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature};\n    __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3262};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine};\n    __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3292};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3319};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3346};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_IMI, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3378};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3407};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3436};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3465};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3494};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3523};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3550};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3577};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MA, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3607};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACD, __pyx_mstate->__pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3644};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3684};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist};\n    __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3719};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama};\n    __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3752};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_periods_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3787};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3816};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3845};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3875};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3913};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3942};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3974};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4003};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger};\n    __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4032};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax};\n    __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4064};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx};\n    __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4096};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4131};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4163};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4192};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4223};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NATR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4258};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4289};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4324};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4356};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PPO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4387};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4416};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4445};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4474};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4503};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4532};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAR, __pyx_mstate->__pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4565};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4604};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4631};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4658};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4687};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4714};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4744};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd};\n    __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4786};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd};\n    __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4826};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd};\n    __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4861};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4892};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4921};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_T3, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4951};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4978};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5005};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5034};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5067};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5096};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5125};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5154};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5187};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5224};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VAR, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5254};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5287};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad;\n  }\n  {\n    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5322};\n    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal};\n    __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad;\n  }\n  Py_DECREF(tuple_dedup_map);\n  return 0;\n  bad:\n  Py_DECREF(tuple_dedup_map);\n  return -1;\n}\n/* #### Code section: init_globals ### */\n\nstatic int __Pyx_InitGlobals(void) {\n  /* PythonCompatibility.init */\n  if (likely(__Pyx_init_co_variables() == 0)); else\n  \n  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)\n\n  /* CommonTypesMetaclass.init */\n  if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else\n  \n  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)\n\n  /* CachedMethodType.init */\n  #if CYTHON_COMPILING_IN_LIMITED_API\n  {\n      PyObject *typesModule=NULL;\n      typesModule = PyImport_ImportModule(\"types\");\n      if (typesModule) {\n          __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, \"MethodType\");\n          Py_DECREF(typesModule);\n      }\n  } // error handling follows\n  #endif\n  \n  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)\n\n  /* CythonFunctionShared.init */\n  if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else\n  \n  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)\n\n  return 0;\n  __pyx_L1_error:;\n  return -1;\n}\n/* #### Code section: cleanup_globals ### */\n/* #### Code section: cleanup_module ### */\n/* #### Code section: main_method ### */\n/* #### Code section: utility_code_pragmas ### */\n#ifdef _MSC_VER\n#pragma warning( push )\n/* Warning 4127: conditional expression is constant\n * Cython uses constant conditional expressions to allow in inline functions to be optimized at\n * compile-time, so this warning is not useful\n */\n#pragma warning( disable : 4127 )\n#endif\n\n\n\n/* #### Code section: utility_code_def ### */\n\n/* --- Runtime support code --- */\n/* Refnanny */\n#if CYTHON_REFNANNY\nstatic __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {\n    PyObject *m = NULL, *p = NULL;\n    void *r = NULL;\n    m = PyImport_ImportModule(modname);\n    if (!m) goto end;\n    p = PyObject_GetAttrString(m, \"RefNannyAPI\");\n    if (!p) goto end;\n    r = PyLong_AsVoidPtr(p);\nend:\n    Py_XDECREF(p);\n    Py_XDECREF(m);\n    return (__Pyx_RefNannyAPIStruct *)r;\n}\n#endif\n\n/* PyErrExceptionMatches (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_FAST_THREAD_STATE\nstatic int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {\n    Py_ssize_t i, n;\n    n = PyTuple_GET_SIZE(tuple);\n    for (i=0; i<n; i++) {\n        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;\n    }\n    for (i=0; i<n; i++) {\n        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;\n    }\n    return 0;\n}\nstatic CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {\n    int result;\n    PyObject *exc_type;\n#if PY_VERSION_HEX >= 0x030C00A6\n    PyObject *current_exception = tstate->current_exception;\n    if (unlikely(!current_exception)) return 0;\n    exc_type = (PyObject*) Py_TYPE(current_exception);\n    if (exc_type == err) return 1;\n#else\n    exc_type = tstate->curexc_type;\n    if (exc_type == err) return 1;\n    if (unlikely(!exc_type)) return 0;\n#endif\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_INCREF(exc_type);\n    #endif\n    if (unlikely(PyTuple_Check(err))) {\n        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);\n    } else {\n        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);\n    }\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_DECREF(exc_type);\n    #endif\n    return result;\n}\n#endif\n\n/* PyErrFetchRestore (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_FAST_THREAD_STATE\nstatic CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {\n#if PY_VERSION_HEX >= 0x030C00A6\n    PyObject *tmp_value;\n    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));\n    if (value) {\n        #if CYTHON_COMPILING_IN_CPYTHON\n        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))\n        #endif\n            PyException_SetTraceback(value, tb);\n    }\n    tmp_value = tstate->current_exception;\n    tstate->current_exception = value;\n    Py_XDECREF(tmp_value);\n    Py_XDECREF(type);\n    Py_XDECREF(tb);\n#else\n    PyObject *tmp_type, *tmp_value, *tmp_tb;\n    tmp_type = tstate->curexc_type;\n    tmp_value = tstate->curexc_value;\n    tmp_tb = tstate->curexc_traceback;\n    tstate->curexc_type = type;\n    tstate->curexc_value = value;\n    tstate->curexc_traceback = tb;\n    Py_XDECREF(tmp_type);\n    Py_XDECREF(tmp_value);\n    Py_XDECREF(tmp_tb);\n#endif\n}\nstatic CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {\n#if PY_VERSION_HEX >= 0x030C00A6\n    PyObject* exc_value;\n    exc_value = tstate->current_exception;\n    tstate->current_exception = 0;\n    *value = exc_value;\n    *type = NULL;\n    *tb = NULL;\n    if (exc_value) {\n        *type = (PyObject*) Py_TYPE(exc_value);\n        Py_INCREF(*type);\n        #if CYTHON_COMPILING_IN_CPYTHON\n        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;\n        Py_XINCREF(*tb);\n        #else\n        *tb = PyException_GetTraceback(exc_value);\n        #endif\n    }\n#else\n    *type = tstate->curexc_type;\n    *value = tstate->curexc_value;\n    *tb = tstate->curexc_traceback;\n    tstate->curexc_type = 0;\n    tstate->curexc_value = 0;\n    tstate->curexc_traceback = 0;\n#endif\n}\n#endif\n\n/* PyObjectGetAttrStr (used by PyObjectGetAttrStrNoError) */\n#if CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {\n    PyTypeObject* tp = Py_TYPE(obj);\n    if (likely(tp->tp_getattro))\n        return tp->tp_getattro(obj, attr_name);\n    return PyObject_GetAttr(obj, attr_name);\n}\n#endif\n\n/* PyObjectGetAttrStrNoError (used by GetBuiltinName) */\n#if __PYX_LIMITED_VERSION_HEX < 0x030d0000\nstatic void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))\n        __Pyx_PyErr_Clear();\n}\n#endif\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {\n    PyObject *result;\n#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);\n    return result;\n#else\n#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS\n    PyTypeObject* tp = Py_TYPE(obj);\n    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {\n        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);\n    }\n#endif\n    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);\n    if (unlikely(!result)) {\n        __Pyx_PyObject_GetAttrStr_ClearAttributeError();\n    }\n    return result;\n#endif\n}\n\n/* GetBuiltinName */\nstatic PyObject *__Pyx_GetBuiltinName(PyObject *name) {\n    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);\n    if (unlikely(!result) && !PyErr_Occurred()) {\n        PyErr_Format(PyExc_NameError,\n            \"name '%U' is not defined\", name);\n    }\n    return result;\n}\n\n/* GetTopmostException (used by SaveResetException) */\n#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE\nstatic _PyErr_StackItem *\n__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)\n{\n    _PyErr_StackItem *exc_info = tstate->exc_info;\n    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&\n           exc_info->previous_item != NULL)\n    {\n        exc_info = exc_info->previous_item;\n    }\n    return exc_info;\n}\n#endif\n\n/* SaveResetException */\n#if CYTHON_FAST_THREAD_STATE\nstatic CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {\n  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4\n    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);\n    PyObject *exc_value = exc_info->exc_value;\n    if (exc_value == NULL || exc_value == Py_None) {\n        *value = NULL;\n        *type = NULL;\n        *tb = NULL;\n    } else {\n        *value = exc_value;\n        Py_INCREF(*value);\n        *type = (PyObject*) Py_TYPE(exc_value);\n        Py_INCREF(*type);\n        *tb = PyException_GetTraceback(exc_value);\n    }\n  #elif CYTHON_USE_EXC_INFO_STACK\n    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);\n    *type = exc_info->exc_type;\n    *value = exc_info->exc_value;\n    *tb = exc_info->exc_traceback;\n    Py_XINCREF(*type);\n    Py_XINCREF(*value);\n    Py_XINCREF(*tb);\n  #else\n    *type = tstate->exc_type;\n    *value = tstate->exc_value;\n    *tb = tstate->exc_traceback;\n    Py_XINCREF(*type);\n    Py_XINCREF(*value);\n    Py_XINCREF(*tb);\n  #endif\n}\nstatic CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {\n  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4\n    _PyErr_StackItem *exc_info = tstate->exc_info;\n    PyObject *tmp_value = exc_info->exc_value;\n    exc_info->exc_value = value;\n    Py_XDECREF(tmp_value);\n    Py_XDECREF(type);\n    Py_XDECREF(tb);\n  #else\n    PyObject *tmp_type, *tmp_value, *tmp_tb;\n    #if CYTHON_USE_EXC_INFO_STACK\n    _PyErr_StackItem *exc_info = tstate->exc_info;\n    tmp_type = exc_info->exc_type;\n    tmp_value = exc_info->exc_value;\n    tmp_tb = exc_info->exc_traceback;\n    exc_info->exc_type = type;\n    exc_info->exc_value = value;\n    exc_info->exc_traceback = tb;\n    #else\n    tmp_type = tstate->exc_type;\n    tmp_value = tstate->exc_value;\n    tmp_tb = tstate->exc_traceback;\n    tstate->exc_type = type;\n    tstate->exc_value = value;\n    tstate->exc_traceback = tb;\n    #endif\n    Py_XDECREF(tmp_type);\n    Py_XDECREF(tmp_value);\n    Py_XDECREF(tmp_tb);\n  #endif\n}\n#endif\n\n/* GetException */\n#if CYTHON_FAST_THREAD_STATE\nstatic int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)\n#else\nstatic int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)\n#endif\n{\n    PyObject *local_type = NULL, *local_value, *local_tb = NULL;\n#if CYTHON_FAST_THREAD_STATE\n    PyObject *tmp_type, *tmp_value, *tmp_tb;\n  #if PY_VERSION_HEX >= 0x030C0000\n    local_value = tstate->current_exception;\n    tstate->current_exception = 0;\n  #else\n    local_type = tstate->curexc_type;\n    local_value = tstate->curexc_value;\n    local_tb = tstate->curexc_traceback;\n    tstate->curexc_type = 0;\n    tstate->curexc_value = 0;\n    tstate->curexc_traceback = 0;\n  #endif\n#elif __PYX_LIMITED_VERSION_HEX > 0x030C0000\n    local_value = PyErr_GetRaisedException();\n#else\n    PyErr_Fetch(&local_type, &local_value, &local_tb);\n#endif\n#if __PYX_LIMITED_VERSION_HEX > 0x030C0000\n    if (likely(local_value)) {\n        local_type = (PyObject*) Py_TYPE(local_value);\n        Py_INCREF(local_type);\n        local_tb = PyException_GetTraceback(local_value);\n    }\n#else\n    PyErr_NormalizeException(&local_type, &local_value, &local_tb);\n#if CYTHON_FAST_THREAD_STATE\n    if (unlikely(tstate->curexc_type))\n#else\n    if (unlikely(PyErr_Occurred()))\n#endif\n        goto bad;\n    if (local_tb) {\n        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))\n            goto bad;\n    }\n#endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000\n    Py_XINCREF(local_tb);\n    Py_XINCREF(local_type);\n    Py_XINCREF(local_value);\n    *type = local_type;\n    *value = local_value;\n    *tb = local_tb;\n#if CYTHON_FAST_THREAD_STATE\n    #if CYTHON_USE_EXC_INFO_STACK\n    {\n        _PyErr_StackItem *exc_info = tstate->exc_info;\n      #if PY_VERSION_HEX >= 0x030B00a4\n        tmp_value = exc_info->exc_value;\n        exc_info->exc_value = local_value;\n        tmp_type = NULL;\n        tmp_tb = NULL;\n        Py_XDECREF(local_type);\n        Py_XDECREF(local_tb);\n      #else\n        tmp_type = exc_info->exc_type;\n        tmp_value = exc_info->exc_value;\n        tmp_tb = exc_info->exc_traceback;\n        exc_info->exc_type = local_type;\n        exc_info->exc_value = local_value;\n        exc_info->exc_traceback = local_tb;\n      #endif\n    }\n    #else\n    tmp_type = tstate->exc_type;\n    tmp_value = tstate->exc_value;\n    tmp_tb = tstate->exc_traceback;\n    tstate->exc_type = local_type;\n    tstate->exc_value = local_value;\n    tstate->exc_traceback = local_tb;\n    #endif\n    Py_XDECREF(tmp_type);\n    Py_XDECREF(tmp_value);\n    Py_XDECREF(tmp_tb);\n#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000\n    PyErr_SetHandledException(local_value);\n    Py_XDECREF(local_value);\n    Py_XDECREF(local_type);\n    Py_XDECREF(local_tb);\n#else\n    PyErr_SetExcInfo(local_type, local_value, local_tb);\n#endif\n    return 0;\n#if __PYX_LIMITED_VERSION_HEX <= 0x030C0000\nbad:\n    *type = 0;\n    *value = 0;\n    *tb = 0;\n    Py_XDECREF(local_type);\n    Py_XDECREF(local_value);\n    Py_XDECREF(local_tb);\n    return -1;\n#endif\n}\n\n/* PyObjectCall (used by PyObjectFastCall) */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {\n    PyObject *result;\n    ternaryfunc call = Py_TYPE(func)->tp_call;\n    if (unlikely(!call))\n        return PyObject_Call(func, arg, kw);\n    if (unlikely(Py_EnterRecursiveCall(\" while calling a Python object\")))\n        return NULL;\n    result = (*call)(func, arg, kw);\n    Py_LeaveRecursiveCall();\n    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {\n        PyErr_SetString(\n            PyExc_SystemError,\n            \"NULL result without error in PyObject_Call\");\n    }\n    return result;\n}\n#endif\n\n/* PyObjectCallMethO (used by PyObjectFastCall) */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {\n    PyObject *self, *result;\n    PyCFunction cfunc;\n    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);\n    self = __Pyx_CyOrPyCFunction_GET_SELF(func);\n    if (unlikely(Py_EnterRecursiveCall(\" while calling a Python object\")))\n        return NULL;\n    result = cfunc(self, arg);\n    Py_LeaveRecursiveCall();\n    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {\n        PyErr_SetString(\n            PyExc_SystemError,\n            \"NULL result without error in PyObject_Call\");\n    }\n    return result;\n}\n#endif\n\n/* PyObjectFastCall */\n#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API\nstatic PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {\n    PyObject *argstuple;\n    PyObject *result = 0;\n    size_t i;\n    argstuple = PyTuple_New((Py_ssize_t)nargs);\n    if (unlikely(!argstuple)) return NULL;\n    for (i = 0; i < nargs; i++) {\n        Py_INCREF(args[i]);\n        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;\n    }\n    result = __Pyx_PyObject_Call(func, argstuple, kwargs);\n  bad:\n    Py_DECREF(argstuple);\n    return result;\n}\n#endif\n#if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API\n  #if PY_VERSION_HEX < 0x03090000\n    #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable)\n  #elif CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {\n    PyTypeObject *tp = Py_TYPE(callable);\n    #if defined(__Pyx_CyFunction_USED)\n    if (__Pyx_CyFunction_CheckExact(callable)) {\n        return __Pyx_CyFunction_func_vectorcall(callable);\n    }\n    #endif\n    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {\n        return NULL;\n    }\n    assert(PyCallable_Check(callable));\n    Py_ssize_t offset = tp->tp_vectorcall_offset;\n    assert(offset > 0);\n    vectorcallfunc ptr;\n    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));\n    return ptr;\n}\n  #else\n    #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)\n  #endif\n#endif\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) {\n    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);\n#if CYTHON_COMPILING_IN_CPYTHON\n    if (nargs == 0 && kwargs == NULL) {\n        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))\n            return __Pyx_PyObject_CallMethO(func, NULL);\n    }\n    else if (nargs == 1 && kwargs == NULL) {\n        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))\n            return __Pyx_PyObject_CallMethO(func, args[0]);\n    }\n#endif\n    if (kwargs == NULL) {\n        #if CYTHON_VECTORCALL\n          #if CYTHON_COMPILING_IN_LIMITED_API\n            return PyObject_Vectorcall(func, args, _nargs, NULL);\n          #else\n            vectorcallfunc f = __Pyx_PyVectorcall_Function(func);\n            if (f) {\n                return f(func, args, _nargs, NULL);\n            }\n          #endif\n        #endif\n    }\n    if (nargs == 0) {\n        return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);\n    }\n    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API\n    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);\n    #else\n    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);\n    #endif\n}\n\n/* RaiseException */\nstatic void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {\n    PyObject* owned_instance = NULL;\n    if (tb == Py_None) {\n        tb = 0;\n    } else if (tb && !PyTraceBack_Check(tb)) {\n        PyErr_SetString(PyExc_TypeError,\n            \"raise: arg 3 must be a traceback or None\");\n        goto bad;\n    }\n    if (value == Py_None)\n        value = 0;\n    if (PyExceptionInstance_Check(type)) {\n        if (value) {\n            PyErr_SetString(PyExc_TypeError,\n                \"instance exception may not have a separate value\");\n            goto bad;\n        }\n        value = type;\n        type = (PyObject*) Py_TYPE(value);\n    } else if (PyExceptionClass_Check(type)) {\n        PyObject *instance_class = NULL;\n        if (value && PyExceptionInstance_Check(value)) {\n            instance_class = (PyObject*) Py_TYPE(value);\n            if (instance_class != type) {\n                int is_subclass = PyObject_IsSubclass(instance_class, type);\n                if (!is_subclass) {\n                    instance_class = NULL;\n                } else if (unlikely(is_subclass == -1)) {\n                    goto bad;\n                } else {\n                    type = instance_class;\n                }\n            }\n        }\n        if (!instance_class) {\n            PyObject *args;\n            if (!value)\n                args = PyTuple_New(0);\n            else if (PyTuple_Check(value)) {\n                Py_INCREF(value);\n                args = value;\n            } else\n                args = PyTuple_Pack(1, value);\n            if (!args)\n                goto bad;\n            owned_instance = PyObject_Call(type, args, NULL);\n            Py_DECREF(args);\n            if (!owned_instance)\n                goto bad;\n            value = owned_instance;\n            if (!PyExceptionInstance_Check(value)) {\n                PyErr_Format(PyExc_TypeError,\n                             \"calling %R should have returned an instance of \"\n                             \"BaseException, not %R\",\n                             type, Py_TYPE(value));\n                goto bad;\n            }\n        }\n    } else {\n        PyErr_SetString(PyExc_TypeError,\n            \"raise: exception class must be a subclass of BaseException\");\n        goto bad;\n    }\n    if (cause) {\n        PyObject *fixed_cause;\n        if (cause == Py_None) {\n            fixed_cause = NULL;\n        } else if (PyExceptionClass_Check(cause)) {\n            fixed_cause = PyObject_CallObject(cause, NULL);\n            if (fixed_cause == NULL)\n                goto bad;\n        } else if (PyExceptionInstance_Check(cause)) {\n            fixed_cause = cause;\n            Py_INCREF(fixed_cause);\n        } else {\n            PyErr_SetString(PyExc_TypeError,\n                            \"exception causes must derive from \"\n                            \"BaseException\");\n            goto bad;\n        }\n        PyException_SetCause(value, fixed_cause);\n    }\n    PyErr_SetObject(type, value);\n    if (tb) {\n#if PY_VERSION_HEX >= 0x030C00A6\n        PyException_SetTraceback(value, tb);\n#elif CYTHON_FAST_THREAD_STATE\n        PyThreadState *tstate = __Pyx_PyThreadState_Current;\n        PyObject* tmp_tb = tstate->curexc_traceback;\n        if (tb != tmp_tb) {\n            Py_INCREF(tb);\n            tstate->curexc_traceback = tb;\n            Py_XDECREF(tmp_tb);\n        }\n#else\n        PyObject *tmp_type, *tmp_value, *tmp_tb;\n        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);\n        Py_INCREF(tb);\n        PyErr_Restore(tmp_type, tmp_value, tb);\n        Py_XDECREF(tmp_tb);\n#endif\n    }\nbad:\n    Py_XDECREF(owned_instance);\n    return;\n}\n\n/* PyUnicode_Unicode */\nstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) {\n    if (unlikely(obj == Py_None))\n        obj = __pyx_mstate_global->__pyx_kp_u_None;\n    return __Pyx_NewRef(obj);\n}\n\n/* CIntToDigits (used by CIntToPyUnicode) */\nstatic const char DIGIT_PAIRS_10[2*10*10+1] = {\n    \"00010203040506070809\"\n    \"10111213141516171819\"\n    \"20212223242526272829\"\n    \"30313233343536373839\"\n    \"40414243444546474849\"\n    \"50515253545556575859\"\n    \"60616263646566676869\"\n    \"70717273747576777879\"\n    \"80818283848586878889\"\n    \"90919293949596979899\"\n};\nstatic const char DIGIT_PAIRS_8[2*8*8+1] = {\n    \"0001020304050607\"\n    \"1011121314151617\"\n    \"2021222324252627\"\n    \"3031323334353637\"\n    \"4041424344454647\"\n    \"5051525354555657\"\n    \"6061626364656667\"\n    \"7071727374757677\"\n};\nstatic const char DIGITS_HEX[2*16+1] = {\n    \"0123456789abcdef\"\n    \"0123456789ABCDEF\"\n};\n\n/* BuildPyUnicode (used by COrdinalToPyUnicode) */\nstatic PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,\n                                                int prepend_sign, char padding_char) {\n    PyObject *uval;\n    Py_ssize_t uoffset = ulength - clength;\n#if CYTHON_USE_UNICODE_INTERNALS\n    Py_ssize_t i;\n    void *udata;\n    uval = PyUnicode_New(ulength, 127);\n    if (unlikely(!uval)) return NULL;\n    udata = PyUnicode_DATA(uval);\n    if (uoffset > 0) {\n        i = 0;\n        if (prepend_sign) {\n            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');\n            i++;\n        }\n        for (; i < uoffset; i++) {\n            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);\n        }\n    }\n    for (i=0; i < clength; i++) {\n        __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);\n    }\n#else\n    {\n        PyObject *sign = NULL, *padding = NULL;\n        uval = NULL;\n        if (uoffset > 0) {\n            prepend_sign = !!prepend_sign;\n            if (uoffset > prepend_sign) {\n                padding = PyUnicode_FromOrdinal(padding_char);\n                if (likely(padding) && uoffset > prepend_sign + 1) {\n                    PyObject *tmp = PySequence_Repeat(padding, uoffset - prepend_sign);\n                    Py_DECREF(padding);\n                    padding = tmp;\n                }\n                if (unlikely(!padding)) goto done_or_error;\n            }\n            if (prepend_sign) {\n                sign = PyUnicode_FromOrdinal('-');\n                if (unlikely(!sign)) goto done_or_error;\n            }\n        }\n        uval = PyUnicode_DecodeASCII(chars, clength, NULL);\n        if (likely(uval) && padding) {\n            PyObject *tmp = PyUnicode_Concat(padding, uval);\n            Py_DECREF(uval);\n            uval = tmp;\n        }\n        if (likely(uval) && sign) {\n            PyObject *tmp = PyUnicode_Concat(sign, uval);\n            Py_DECREF(uval);\n            uval = tmp;\n        }\ndone_or_error:\n        Py_XDECREF(padding);\n        Py_XDECREF(sign);\n    }\n#endif\n    return uval;\n}\n\n/* COrdinalToPyUnicode (used by CIntToPyUnicode) */\nstatic CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value) {\n    return value <= 1114111;\n}\nstatic PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t ulength, char padding_char) {\n    Py_ssize_t padding_length = ulength - 1;\n    if (likely((padding_length <= 250) && (value < 0xD800 || value > 0xDFFF))) {\n        char chars[256];\n        if (value <= 255) {\n            memset(chars, padding_char, (size_t) padding_length);\n            chars[ulength-1] = (char) value;\n            return PyUnicode_DecodeLatin1(chars, ulength, NULL);\n        }\n        char *cpos = chars + sizeof(chars);\n        if (value < 0x800) {\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0xc0 | (value & 0x1f));\n        } else if (value < 0x10000) {\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0xe0 | (value & 0x0f));\n        } else {\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0x80 | (value & 0x3f));\n            value >>= 6;\n            *--cpos = (char) (0xf0 | (value & 0x07));\n        }\n        cpos -= padding_length;\n        memset(cpos, padding_char, (size_t) padding_length);\n        return PyUnicode_DecodeUTF8(cpos, chars + sizeof(chars) - cpos, NULL);\n    }\n    if (value <= 127 && CYTHON_USE_UNICODE_INTERNALS) {\n        const char chars[1] = {(char) value};\n        return __Pyx_PyUnicode_BuildFromAscii(ulength, chars, 1, 0, padding_char);\n    }\n    {\n        PyObject *uchar, *padding_uchar, *padding, *result;\n        padding_uchar = PyUnicode_FromOrdinal(padding_char);\n        if (unlikely(!padding_uchar)) return NULL;\n        padding = PySequence_Repeat(padding_uchar, padding_length);\n        Py_DECREF(padding_uchar);\n        if (unlikely(!padding)) return NULL;\n        uchar = PyUnicode_FromOrdinal(value);\n        if (unlikely(!uchar)) {\n            Py_DECREF(padding);\n            return NULL;\n        }\n        result = PyUnicode_Concat(padding, uchar);\n        Py_DECREF(padding);\n        Py_DECREF(uchar);\n        return result;\n    }\n}\n\n/* CIntToPyUnicode */\nstatic CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_RetCode neg_one = (TA_RetCode) -1, const_zero = (TA_RetCode) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||\n                    !(sizeof(value) <= 2 || value & ~ (TA_RetCode) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {\n        PyErr_SetString(PyExc_OverflowError, \"%c arg not in range(0x110000)\");\n        return NULL;\n    }\n    if (width <= 1) {\n        return PyUnicode_FromOrdinal((int) value);\n    }\n    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);\n}\nstatic CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char, char format_char) {\n    char digits[sizeof(TA_RetCode)*3+2];\n    char *dpos, *end = digits + sizeof(TA_RetCode)*3+2;\n    const char *hex_digits = DIGITS_HEX;\n    Py_ssize_t length, ulength;\n    int prepend_sign, last_one_off;\n    TA_RetCode remaining;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_RetCode neg_one = (TA_RetCode) -1, const_zero = (TA_RetCode) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (format_char == 'X') {\n        hex_digits += 16;\n        format_char = 'x';\n    }\n    remaining = value;\n    last_one_off = 0;\n    dpos = end;\n    do {\n        int digit_pos;\n        switch (format_char) {\n        case 'o':\n            digit_pos = abs((int)(remaining % (8*8)));\n            remaining = (TA_RetCode) (remaining / (8*8));\n            dpos -= 2;\n            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);\n            last_one_off = (digit_pos < 8);\n            break;\n        case 'd':\n            digit_pos = abs((int)(remaining % (10*10)));\n            remaining = (TA_RetCode) (remaining / (10*10));\n            dpos -= 2;\n            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);\n            last_one_off = (digit_pos < 10);\n            break;\n        case 'x':\n            *(--dpos) = hex_digits[abs((int)(remaining % 16))];\n            remaining = (TA_RetCode) (remaining / 16);\n            break;\n        default:\n            assert(0);\n            break;\n        }\n    } while (unlikely(remaining != 0));\n    assert(!last_one_off || *dpos == '0');\n    dpos += last_one_off;\n    length = end - dpos;\n    ulength = length;\n    prepend_sign = 0;\n    if (!is_unsigned && value <= neg_one) {\n        if (padding_char == ' ' || width <= length + 1) {\n            *(--dpos) = '-';\n            ++length;\n        } else {\n            prepend_sign = 1;\n        }\n        ++ulength;\n    }\n    if (width > ulength) {\n        ulength = width;\n    }\n    if (ulength == 1) {\n        return PyUnicode_FromOrdinal(*dpos);\n    }\n    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);\n}\n\n/* JoinPyUnicode */\nstatic PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,\n                                      Py_UCS4 max_char) {\n#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n    PyObject *result_uval;\n    int result_ukind, kind_shift;\n    Py_ssize_t i, char_pos;\n    void *result_udata;\n    if (max_char > 1114111) max_char = 1114111;\n    result_uval = PyUnicode_New(result_ulength, max_char);\n    if (unlikely(!result_uval)) return NULL;\n    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;\n    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;\n    result_udata = PyUnicode_DATA(result_uval);\n    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);\n    if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - result_ulength < 0))\n        goto overflow;\n    char_pos = 0;\n    for (i=0; i < value_count; i++) {\n        int ukind;\n        Py_ssize_t ulength;\n        void *udata;\n        PyObject *uval = values[i];\n        #if !CYTHON_COMPILING_IN_LIMITED_API\n        if (__Pyx_PyUnicode_READY(uval) == (-1))\n            goto bad;\n        #endif\n        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(ulength < 0)) goto bad;\n        #endif\n        if (unlikely(!ulength))\n            continue;\n        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))\n            goto overflow;\n        ukind = __Pyx_PyUnicode_KIND(uval);\n        udata = __Pyx_PyUnicode_DATA(uval);\n        if (ukind == result_ukind) {\n            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));\n        } else {\n            #if PY_VERSION_HEX >= 0x030d0000\n            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;\n            #elif CYTHON_COMPILING_IN_CPYTHON || defined(_PyUnicode_FastCopyCharacters)\n            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);\n            #else\n            Py_ssize_t j;\n            for (j=0; j < ulength; j++) {\n                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);\n                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);\n            }\n            #endif\n        }\n        char_pos += ulength;\n    }\n    return result_uval;\noverflow:\n    PyErr_SetString(PyExc_OverflowError, \"join() result is too long for a Python string\");\nbad:\n    Py_DECREF(result_uval);\n    return NULL;\n#else\n    Py_ssize_t i;\n    PyObject *result = NULL;\n    PyObject *value_tuple = PyTuple_New(value_count);\n    if (unlikely(!value_tuple)) return NULL;\n    CYTHON_UNUSED_VAR(max_char);\n    CYTHON_UNUSED_VAR(result_ulength);\n    for (i=0; i<value_count; i++) {\n        if (__Pyx_PyTuple_SET_ITEM(value_tuple, i, values[i]) != (0)) goto bad;\n        Py_INCREF(values[i]);\n    }\n    result = PyUnicode_Join(__pyx_mstate_global->__pyx_empty_unicode, value_tuple);\nbad:\n    Py_DECREF(value_tuple);\n    return result;\n#endif\n}\n\n/* TupleAndListFromArray (used by fastcall) */\n#if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL\nstatic CYTHON_INLINE PyObject *\n__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)\n{\n    PyObject *res;\n    Py_ssize_t i;\n    if (n <= 0) {\n        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);\n    }\n    res = PyTuple_New(n);\n    if (unlikely(res == NULL)) return NULL;\n    for (i = 0; i < n; i++) {\n        if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {\n            Py_DECREF(res);\n            return NULL;\n        }\n        Py_INCREF(src[i]);\n    }\n    return res;\n}\n#elif CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {\n    PyObject *v;\n    Py_ssize_t i;\n    for (i = 0; i < length; i++) {\n        v = dest[i] = src[i];\n        Py_INCREF(v);\n    }\n}\nstatic CYTHON_INLINE PyObject *\n__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)\n{\n    PyObject *res;\n    if (n <= 0) {\n        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);\n    }\n    res = PyTuple_New(n);\n    if (unlikely(res == NULL)) return NULL;\n    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);\n    return res;\n}\nstatic CYTHON_INLINE PyObject *\n__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)\n{\n    PyObject *res;\n    if (n <= 0) {\n        return PyList_New(0);\n    }\n    res = PyList_New(n);\n    if (unlikely(res == NULL)) return NULL;\n    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);\n    return res;\n}\n#endif\n\n/* BytesEquals (used by UnicodeEquals) */\nstatic CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {\n#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\\\n        !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS)\n    return PyObject_RichCompareBool(s1, s2, equals);\n#else\n    if (s1 == s2) {\n        return (equals == Py_EQ);\n    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {\n        const char *ps1, *ps2;\n        Py_ssize_t length = PyBytes_GET_SIZE(s1);\n        if (length != PyBytes_GET_SIZE(s2))\n            return (equals == Py_NE);\n        ps1 = PyBytes_AS_STRING(s1);\n        ps2 = PyBytes_AS_STRING(s2);\n        if (ps1[0] != ps2[0]) {\n            return (equals == Py_NE);\n        } else if (length == 1) {\n            return (equals == Py_EQ);\n        } else {\n            int result;\n#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)\n            Py_hash_t hash1, hash2;\n            hash1 = ((PyBytesObject*)s1)->ob_shash;\n            hash2 = ((PyBytesObject*)s2)->ob_shash;\n            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {\n                return (equals == Py_NE);\n            }\n#endif\n            result = memcmp(ps1, ps2, (size_t)length);\n            return (equals == Py_EQ) ? (result == 0) : (result != 0);\n        }\n    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {\n        return (equals == Py_NE);\n    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {\n        return (equals == Py_NE);\n    } else {\n        int result;\n        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);\n        if (!py_result)\n            return -1;\n        result = __Pyx_PyObject_IsTrue(py_result);\n        Py_DECREF(py_result);\n        return result;\n    }\n#endif\n}\n\n/* UnicodeEquals (used by fastcall) */\nstatic CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {\n#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL\n    return PyObject_RichCompareBool(s1, s2, equals);\n#else\n    int s1_is_unicode, s2_is_unicode;\n    if (s1 == s2) {\n        goto return_eq;\n    }\n    s1_is_unicode = PyUnicode_CheckExact(s1);\n    s2_is_unicode = PyUnicode_CheckExact(s2);\n    if (s1_is_unicode & s2_is_unicode) {\n        Py_ssize_t length, length2;\n        int kind;\n        void *data1, *data2;\n        #if !CYTHON_COMPILING_IN_LIMITED_API\n        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))\n            return -1;\n        #endif\n        length = __Pyx_PyUnicode_GET_LENGTH(s1);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(length < 0)) return -1;\n        #endif\n        length2 = __Pyx_PyUnicode_GET_LENGTH(s2);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(length2 < 0)) return -1;\n        #endif\n        if (length != length2) {\n            goto return_ne;\n        }\n#if CYTHON_USE_UNICODE_INTERNALS\n        {\n            Py_hash_t hash1, hash2;\n            hash1 = ((PyASCIIObject*)s1)->hash;\n            hash2 = ((PyASCIIObject*)s2)->hash;\n            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {\n                goto return_ne;\n            }\n        }\n#endif\n        kind = __Pyx_PyUnicode_KIND(s1);\n        if (kind != __Pyx_PyUnicode_KIND(s2)) {\n            goto return_ne;\n        }\n        data1 = __Pyx_PyUnicode_DATA(s1);\n        data2 = __Pyx_PyUnicode_DATA(s2);\n        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {\n            goto return_ne;\n        } else if (length == 1) {\n            goto return_eq;\n        } else {\n            int result = memcmp(data1, data2, (size_t)(length * kind));\n            return (equals == Py_EQ) ? (result == 0) : (result != 0);\n        }\n    } else if ((s1 == Py_None) & s2_is_unicode) {\n        goto return_ne;\n    } else if ((s2 == Py_None) & s1_is_unicode) {\n        goto return_ne;\n    } else {\n        int result;\n        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);\n        if (!py_result)\n            return -1;\n        result = __Pyx_PyObject_IsTrue(py_result);\n        Py_DECREF(py_result);\n        return result;\n    }\nreturn_eq:\n    return (equals == Py_EQ);\nreturn_ne:\n    return (equals == Py_NE);\n#endif\n}\n\n/* fastcall */\n#if CYTHON_METH_FASTCALL\nstatic CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)\n{\n    Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);\n    #if !CYTHON_ASSUME_SAFE_SIZE\n    if (unlikely(n == -1)) return NULL;\n    #endif\n    for (i = 0; i < n; i++)\n    {\n        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);\n        #if !CYTHON_ASSUME_SAFE_MACROS\n        if (unlikely(!namei)) return NULL;\n        #endif\n        if (s == namei) return kwvalues[i];\n    }\n    for (i = 0; i < n; i++)\n    {\n        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);\n        #if !CYTHON_ASSUME_SAFE_MACROS\n        if (unlikely(!namei)) return NULL;\n        #endif\n        int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ);\n        if (unlikely(eq != 0)) {\n            if (unlikely(eq < 0)) return NULL;\n            return kwvalues[i];\n        }\n    }\n    return NULL;\n}\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API\nCYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {\n    Py_ssize_t i, nkwargs;\n    PyObject *dict;\n#if !CYTHON_ASSUME_SAFE_SIZE\n    nkwargs = PyTuple_Size(kwnames);\n    if (unlikely(nkwargs < 0)) return NULL;\n#else\n    nkwargs = PyTuple_GET_SIZE(kwnames);\n#endif\n    dict = PyDict_New();\n    if (unlikely(!dict))\n        return NULL;\n    for (i=0; i<nkwargs; i++) {\n#if !CYTHON_ASSUME_SAFE_MACROS\n        PyObject *key = PyTuple_GetItem(kwnames, i);\n        if (!key) goto bad;\n#else\n        PyObject *key = PyTuple_GET_ITEM(kwnames, i);\n#endif\n        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))\n            goto bad;\n    }\n    return dict;\nbad:\n    Py_DECREF(dict);\n    return NULL;\n}\n#endif\n#endif\n\n/* PyObjectCallOneArg (used by CallUnboundCMethod0) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {\n    PyObject *args[2] = {NULL, arg};\n    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);\n}\n\n/* UnpackUnboundCMethod (used by CallUnboundCMethod0) */\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000\nstatic PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {\n    PyObject *result;\n    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));\n    if (unlikely(!selfless_args)) return NULL;\n    result = PyObject_Call(method, selfless_args, kwargs);\n    Py_DECREF(selfless_args);\n    return result;\n}\n#elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000\nstatic PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {\n        return _PyObject_Vectorcall\n            (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);\n}\n#else\nstatic PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {\n    return\n#if PY_VERSION_HEX < 0x03090000\n    _PyObject_Vectorcall\n#else\n    PyObject_Vectorcall\n#endif\n        (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);\n}\n#endif\nstatic PyMethodDef __Pyx_UnboundCMethod_Def = {\n     \"CythonUnboundCMethod\",\n     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000\n     METH_VARARGS | METH_KEYWORDS,\n#else\n     METH_FASTCALL | METH_KEYWORDS,\n#endif\n     NULL\n};\nstatic int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {\n    PyObject *method, *result=NULL;\n    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);\n    if (unlikely(!method))\n        return -1;\n    result = method;\n#if CYTHON_COMPILING_IN_CPYTHON\n    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))\n    {\n        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;\n        target->func = descr->d_method->ml_meth;\n        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);\n    } else\n#endif\n#if CYTHON_COMPILING_IN_PYPY\n#else\n    if (PyCFunction_Check(method))\n#endif\n    {\n        PyObject *self;\n        int self_found;\n#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY\n        self = PyObject_GetAttrString(method, \"__self__\");\n        if (!self) {\n            PyErr_Clear();\n        }\n#else\n        self = PyCFunction_GET_SELF(method);\n#endif\n        self_found = (self && self != Py_None);\n#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY\n        Py_XDECREF(self);\n#endif\n        if (self_found) {\n            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);\n            if (unlikely(!unbound_method)) return -1;\n            Py_DECREF(method);\n            result = unbound_method;\n        }\n    }\n#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    if (unlikely(target->method)) {\n        Py_DECREF(result);\n    } else\n#endif\n    target->method = result;\n    return 0;\n}\n\n/* CallUnboundCMethod0 */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {\n    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);\n    if (likely(was_initialized == 2 && cfunc->func)) {\n        if (likely(cfunc->flag == METH_NOARGS))\n            return __Pyx_CallCFunction(cfunc, self, NULL);\n        if (likely(cfunc->flag == METH_FASTCALL))\n            return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);\n        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))\n            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);\n        if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))\n            return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);\n        if (cfunc->flag == METH_VARARGS)\n            return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);\n        return __Pyx__CallUnboundCMethod0(cfunc, self);\n    }\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    else if (unlikely(was_initialized == 1)) {\n        __Pyx_CachedCFunction tmp_cfunc = {\n#ifndef __cplusplus\n            0\n#endif\n        };\n        tmp_cfunc.type = cfunc->type;\n        tmp_cfunc.method_name = cfunc->method_name;\n        return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);\n    }\n#endif\n    PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);\n    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);\n    return result;\n}\n#endif\nstatic PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {\n    PyObject *result;\n    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;\n    result = __Pyx_PyObject_CallOneArg(cfunc->method, self);\n    return result;\n}\n\n/* py_dict_items (used by OwnedDictNext) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {\n    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);\n}\n\n/* py_dict_values (used by OwnedDictNext) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {\n    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);\n}\n\n/* OwnedDictNext (used by ParseKeywordsImpl) */\n#if CYTHON_AVOID_BORROWED_REFS\nstatic int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {\n    PyObject *next = NULL;\n    if (!*ppos) {\n        if (pvalue) {\n            PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);\n            if (unlikely(!dictview)) goto bad;\n            *ppos = PyObject_GetIter(dictview);\n            Py_DECREF(dictview);\n        } else {\n            *ppos = PyObject_GetIter(p);\n        }\n        if (unlikely(!*ppos)) goto bad;\n    }\n    next = PyIter_Next(*ppos);\n    if (!next) {\n        if (PyErr_Occurred()) goto bad;\n        return 0;\n    }\n    if (pkey && pvalue) {\n        *pkey = __Pyx_PySequence_ITEM(next, 0);\n        if (unlikely(*pkey)) goto bad;\n        *pvalue = __Pyx_PySequence_ITEM(next, 1);\n        if (unlikely(*pvalue)) goto bad;\n        Py_DECREF(next);\n    } else if (pkey) {\n        *pkey = next;\n    } else {\n        assert(pvalue);\n        *pvalue = next;\n    }\n    return 1;\n  bad:\n    Py_XDECREF(next);\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000\n    PyErr_FormatUnraisable(\"Exception ignored in __Pyx_PyDict_NextRef\");\n#else\n    PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);\n#endif\n    if (pkey) *pkey = NULL;\n    if (pvalue) *pvalue = NULL;\n    return 0;\n}\n#else // !CYTHON_AVOID_BORROWED_REFS\nstatic int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {\n    int result = PyDict_Next(p, ppos, pkey, pvalue);\n    if (likely(result == 1)) {\n        if (pkey) Py_INCREF(*pkey);\n        if (pvalue) Py_INCREF(*pvalue);\n    }\n    return result;\n}\n#endif\n\n/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */\nstatic void __Pyx_RaiseDoubleKeywordsError(\n    const char* func_name,\n    PyObject* kw_name)\n{\n    PyErr_Format(PyExc_TypeError,\n        \"%s() got multiple values for keyword argument '%U'\", func_name, kw_name);\n}\n\n/* CallUnboundCMethod2 */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {\n    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);\n    if (likely(was_initialized == 2 && cfunc->func)) {\n        PyObject *args[2] = {arg1, arg2};\n        if (cfunc->flag == METH_FASTCALL) {\n            return __Pyx_CallCFunctionFast(cfunc, self, args, 2);\n        }\n        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))\n            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);\n    }\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    else if (unlikely(was_initialized == 1)) {\n        __Pyx_CachedCFunction tmp_cfunc = {\n#ifndef __cplusplus\n            0\n#endif\n        };\n        tmp_cfunc.type = cfunc->type;\n        tmp_cfunc.method_name = cfunc->method_name;\n        return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);\n    }\n#endif\n    PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);\n    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);\n    return result;\n}\n#endif\nstatic PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){\n    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;\n#if CYTHON_COMPILING_IN_CPYTHON\n    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {\n        PyObject *result = NULL;\n        PyObject *args = PyTuple_New(2);\n        if (unlikely(!args)) return NULL;\n        Py_INCREF(arg1);\n        PyTuple_SET_ITEM(args, 0, arg1);\n        Py_INCREF(arg2);\n        PyTuple_SET_ITEM(args, 1, arg2);\n        if (cfunc->flag & METH_KEYWORDS)\n            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);\n        else\n            result = __Pyx_CallCFunction(cfunc, self, args);\n        Py_DECREF(args);\n        return result;\n    }\n#endif\n    {\n        PyObject *args[4] = {NULL, self, arg1, arg2};\n        return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);\n    }\n}\n\n/* ParseKeywordsImpl (used by ParseKeywords) */\nstatic int __Pyx_ValidateDuplicatePosArgs(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject ** const *first_kw_arg,\n    const char* function_name)\n{\n    PyObject ** const *name = argnames;\n    while (name != first_kw_arg) {\n        PyObject *key = **name;\n        int found = PyDict_Contains(kwds, key);\n        if (unlikely(found)) {\n            if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);\n            goto bad;\n        }\n        name++;\n    }\n    return 0;\nbad:\n    return -1;\n}\n#if CYTHON_USE_UNICODE_INTERNALS\nstatic CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {\n    int kind;\n    Py_ssize_t len = PyUnicode_GET_LENGTH(s1);\n    if (len != PyUnicode_GET_LENGTH(s2)) return 0;\n    kind = PyUnicode_KIND(s1);\n    if (kind != PyUnicode_KIND(s2)) return 0;\n    const void *data1 = PyUnicode_DATA(s1);\n    const void *data2 = PyUnicode_DATA(s2);\n    return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);\n}\n#endif\nstatic int __Pyx_MatchKeywordArg_str(\n    PyObject *key,\n    PyObject ** const argnames[],\n    PyObject ** const *first_kw_arg,\n    size_t *index_found,\n    const char *function_name)\n{\n    PyObject ** const *name;\n    #if CYTHON_USE_UNICODE_INTERNALS\n    Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;\n    if (unlikely(key_hash == -1)) {\n        key_hash = PyObject_Hash(key);\n        if (unlikely(key_hash == -1))\n            goto bad;\n    }\n    #endif\n    name = first_kw_arg;\n    while (*name) {\n        PyObject *name_str = **name;\n        #if CYTHON_USE_UNICODE_INTERNALS\n        if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {\n            *index_found = (size_t) (name - argnames);\n            return 1;\n        }\n        #else\n        #if CYTHON_ASSUME_SAFE_SIZE\n        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))\n        #endif\n        {\n            int cmp = PyUnicode_Compare(name_str, key);\n            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;\n            if (cmp == 0) {\n                *index_found = (size_t) (name - argnames);\n                return 1;\n            }\n        }\n        #endif\n        name++;\n    }\n    name = argnames;\n    while (name != first_kw_arg) {\n        PyObject *name_str = **name;\n        #if CYTHON_USE_UNICODE_INTERNALS\n        if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {\n            if (__Pyx_UnicodeKeywordsEqual(name_str, key))\n                goto arg_passed_twice;\n        }\n        #else\n        #if CYTHON_ASSUME_SAFE_SIZE\n        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))\n        #endif\n        {\n            if (unlikely(name_str == key)) goto arg_passed_twice;\n            int cmp = PyUnicode_Compare(name_str, key);\n            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;\n            if (cmp == 0) goto arg_passed_twice;\n        }\n        #endif\n        name++;\n    }\n    return 0;\narg_passed_twice:\n    __Pyx_RaiseDoubleKeywordsError(function_name, key);\n    goto bad;\nbad:\n    return -1;\n}\nstatic int __Pyx_MatchKeywordArg_nostr(\n    PyObject *key,\n    PyObject ** const argnames[],\n    PyObject ** const *first_kw_arg,\n    size_t *index_found,\n    const char *function_name)\n{\n    PyObject ** const *name;\n    if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;\n    name = first_kw_arg;\n    while (*name) {\n        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);\n        if (cmp == 1) {\n            *index_found = (size_t) (name - argnames);\n            return 1;\n        }\n        if (unlikely(cmp == -1)) goto bad;\n        name++;\n    }\n    name = argnames;\n    while (name != first_kw_arg) {\n        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);\n        if (unlikely(cmp != 0)) {\n            if (cmp == 1) goto arg_passed_twice;\n            else goto bad;\n        }\n        name++;\n    }\n    return 0;\narg_passed_twice:\n    __Pyx_RaiseDoubleKeywordsError(function_name, key);\n    goto bad;\ninvalid_keyword_type:\n    PyErr_Format(PyExc_TypeError,\n        \"%.200s() keywords must be strings\", function_name);\n    goto bad;\nbad:\n    return -1;\n}\nstatic CYTHON_INLINE int __Pyx_MatchKeywordArg(\n    PyObject *key,\n    PyObject ** const argnames[],\n    PyObject ** const *first_kw_arg,\n    size_t *index_found,\n    const char *function_name)\n{\n    return likely(PyUnicode_CheckExact(key)) ?\n        __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :\n        __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);\n}\nstatic void __Pyx_RejectUnknownKeyword(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject ** const *first_kw_arg,\n    const char *function_name)\n{\n    #if CYTHON_AVOID_BORROWED_REFS\n    PyObject *pos = NULL;\n    #else\n    Py_ssize_t pos = 0;\n    #endif\n    PyObject *key = NULL;\n    __Pyx_BEGIN_CRITICAL_SECTION(kwds);\n    while (\n        #if CYTHON_AVOID_BORROWED_REFS\n        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL)\n        #else\n        PyDict_Next(kwds, &pos, &key, NULL)\n        #endif\n    ) {\n        PyObject** const *name = first_kw_arg;\n        while (*name && (**name != key)) name++;\n        if (!*name) {\n            size_t index_found = 0;\n            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);\n            if (cmp != 1) {\n                if (cmp == 0) {\n                    PyErr_Format(PyExc_TypeError,\n                        \"%s() got an unexpected keyword argument '%U'\",\n                        function_name, key);\n                }\n                #if CYTHON_AVOID_BORROWED_REFS\n                Py_DECREF(key);\n                #endif\n                break;\n            }\n        }\n        #if CYTHON_AVOID_BORROWED_REFS\n        Py_DECREF(key);\n        #endif\n    }\n    __Pyx_END_CRITICAL_SECTION();\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_XDECREF(pos);\n    #endif\n    assert(PyErr_Occurred());\n}\nstatic int __Pyx_ParseKeywordDict(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs)\n{\n    PyObject** const *name;\n    PyObject** const *first_kw_arg = argnames + num_pos_args;\n    Py_ssize_t extracted = 0;\n#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)\n    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;\n#endif\n    name = first_kw_arg;\n    while (*name && num_kwargs > extracted) {\n        PyObject * key = **name;\n        PyObject *value;\n        int found = 0;\n        #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n        found = PyDict_GetItemRef(kwds, key, &value);\n        #else\n        value = PyDict_GetItemWithError(kwds, key);\n        if (value) {\n            Py_INCREF(value);\n            found = 1;\n        } else {\n            if (unlikely(PyErr_Occurred())) goto bad;\n        }\n        #endif\n        if (found) {\n            if (unlikely(found < 0)) goto bad;\n            values[name-argnames] = value;\n            extracted++;\n        }\n        name++;\n    }\n    if (num_kwargs > extracted) {\n        if (ignore_unknown_kwargs) {\n            if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))\n                goto bad;\n        } else {\n            __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);\n            goto bad;\n        }\n    }\n    return 0;\nbad:\n    return -1;\n}\nstatic int __Pyx_ParseKeywordDictToDict(\n    PyObject *kwds,\n    PyObject ** const argnames[],\n    PyObject *kwds2,\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    const char* function_name)\n{\n    PyObject** const *name;\n    PyObject** const *first_kw_arg = argnames + num_pos_args;\n    Py_ssize_t len;\n#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)\n    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;\n#endif\n    if (PyDict_Update(kwds2, kwds) < 0) goto bad;\n    name = first_kw_arg;\n    while (*name) {\n        PyObject *key = **name;\n        PyObject *value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))\n        int found = PyDict_Pop(kwds2, key, &value);\n        if (found) {\n            if (unlikely(found < 0)) goto bad;\n            values[name-argnames] = value;\n        }\n#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n        int found = PyDict_GetItemRef(kwds2, key, &value);\n        if (found) {\n            if (unlikely(found < 0)) goto bad;\n            values[name-argnames] = value;\n            if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;\n        }\n#else\n    #if CYTHON_COMPILING_IN_CPYTHON\n        value = _PyDict_Pop(kwds2, key, kwds2);\n    #else\n        value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);\n    #endif\n        if (value == kwds2) {\n            Py_DECREF(value);\n        } else {\n            if (unlikely(!value)) goto bad;\n            values[name-argnames] = value;\n        }\n#endif\n        name++;\n    }\n    len = PyDict_Size(kwds2);\n    if (len > 0) {\n        return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);\n    } else if (unlikely(len == -1)) {\n        goto bad;\n    }\n    return 0;\nbad:\n    return -1;\n}\nstatic int __Pyx_ParseKeywordsTuple(\n    PyObject *kwds,\n    PyObject * const *kwvalues,\n    PyObject ** const argnames[],\n    PyObject *kwds2,\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs)\n{\n    PyObject *key = NULL;\n    PyObject** const * name;\n    PyObject** const *first_kw_arg = argnames + num_pos_args;\n    for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {\n#if CYTHON_AVOID_BORROWED_REFS\n        key = __Pyx_PySequence_ITEM(kwds, pos);\n#else\n        key = __Pyx_PyTuple_GET_ITEM(kwds, pos);\n#endif\n#if !CYTHON_ASSUME_SAFE_MACROS\n        if (unlikely(!key)) goto bad;\n#endif\n        name = first_kw_arg;\n        while (*name && (**name != key)) name++;\n        if (*name) {\n            PyObject *value = kwvalues[pos];\n            values[name-argnames] = __Pyx_NewRef(value);\n        } else {\n            size_t index_found = 0;\n            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);\n            if (cmp == 1) {\n                PyObject *value = kwvalues[pos];\n                values[index_found] = __Pyx_NewRef(value);\n            } else {\n                if (unlikely(cmp == -1)) goto bad;\n                if (kwds2) {\n                    PyObject *value = kwvalues[pos];\n                    if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;\n                } else if (!ignore_unknown_kwargs) {\n                    goto invalid_keyword;\n                }\n            }\n        }\n        #if CYTHON_AVOID_BORROWED_REFS\n        Py_DECREF(key);\n        key = NULL;\n        #endif\n    }\n    return 0;\ninvalid_keyword:\n    PyErr_Format(PyExc_TypeError,\n        \"%s() got an unexpected keyword argument '%U'\",\n        function_name, key);\n    goto bad;\nbad:\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_XDECREF(key);\n    #endif\n    return -1;\n}\n\n/* ParseKeywords */\nstatic int __Pyx_ParseKeywords(\n    PyObject *kwds,\n    PyObject * const *kwvalues,\n    PyObject ** const argnames[],\n    PyObject *kwds2,\n    PyObject *values[],\n    Py_ssize_t num_pos_args,\n    Py_ssize_t num_kwargs,\n    const char* function_name,\n    int ignore_unknown_kwargs)\n{\n    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)))\n        return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);\n    else if (kwds2)\n        return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);\n    else\n        return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);\n}\n\n/* RaiseArgTupleInvalid */\nstatic void __Pyx_RaiseArgtupleInvalid(\n    const char* func_name,\n    int exact,\n    Py_ssize_t num_min,\n    Py_ssize_t num_max,\n    Py_ssize_t num_found)\n{\n    Py_ssize_t num_expected;\n    const char *more_or_less;\n    if (num_found < num_min) {\n        num_expected = num_min;\n        more_or_less = \"at least\";\n    } else {\n        num_expected = num_max;\n        more_or_less = \"at most\";\n    }\n    if (exact) {\n        more_or_less = \"exactly\";\n    }\n    PyErr_Format(PyExc_TypeError,\n                 \"%.200s() takes %.8s %\" CYTHON_FORMAT_SSIZE_T \"d positional argument%.1s (%\" CYTHON_FORMAT_SSIZE_T \"d given)\",\n                 func_name, more_or_less, num_expected,\n                 (num_expected == 1) ? \"\" : \"s\", num_found);\n}\n\n/* ArgTypeTestFunc (used by ArgTypeTest) */\nstatic int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)\n{\n    __Pyx_TypeName type_name;\n    __Pyx_TypeName obj_type_name;\n    PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;\n    int from_annotation_subclass = 0;\n    if (unlikely(!type)) {\n        PyErr_SetString(PyExc_SystemError, \"Missing type object\");\n        return 0;\n    }\n    else if (!exact) {\n        if (likely(__Pyx_TypeCheck(obj, type))) return 1;\n    } else if (exact == 2) {\n        if (__Pyx_TypeCheck(obj, type)) {\n            from_annotation_subclass = 1;\n            extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;\n        }\n    }\n    type_name = __Pyx_PyType_GetFullyQualifiedName(type);\n    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));\n    PyErr_Format(PyExc_TypeError,\n        \"Argument '%.200s' has incorrect type (expected \" __Pyx_FMT_TYPENAME\n        \", got \" __Pyx_FMT_TYPENAME \")\"\n#if __PYX_LIMITED_VERSION_HEX < 0x030C0000\n        \"%s%U\"\n#endif\n        , name, type_name, obj_type_name\n#if __PYX_LIMITED_VERSION_HEX < 0x030C0000\n        , (from_annotation_subclass ? \". \" : \"\"), extra_info\n#endif\n        );\n#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000\n    if (exact == 2 && from_annotation_subclass) {\n        PyObject *res;\n        PyObject *vargs[2];\n        vargs[0] = PyErr_GetRaisedException();\n        vargs[1] = extra_info;\n        res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);\n        Py_XDECREF(res);\n        PyErr_SetRaisedException(vargs[0]);\n    }\n#endif\n    __Pyx_DECREF_TypeName(type_name);\n    __Pyx_DECREF_TypeName(obj_type_name);\n    return 0;\n}\n\n/* PyDictVersioning (used by GetModuleGlobalName) */\n#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {\n    PyObject *dict = Py_TYPE(obj)->tp_dict;\n    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;\n}\nstatic CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {\n    PyObject **dictptr = NULL;\n    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;\n    if (offset) {\n#if CYTHON_COMPILING_IN_CPYTHON\n        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);\n#else\n        dictptr = _PyObject_GetDictPtr(obj);\n#endif\n    }\n    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;\n}\nstatic CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {\n    PyObject *dict = Py_TYPE(obj)->tp_dict;\n    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))\n        return 0;\n    return obj_dict_version == __Pyx_get_object_dict_version(obj);\n}\n#endif\n\n/* GetModuleGlobalName */\n#if CYTHON_USE_DICT_VERSIONS\nstatic PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)\n#else\nstatic CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)\n#endif\n{\n    PyObject *result;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    if (unlikely(!__pyx_m)) {\n        if (!PyErr_Occurred())\n            PyErr_SetNone(PyExc_NameError);\n        return NULL;\n    }\n    result = PyObject_GetAttr(__pyx_m, name);\n    if (likely(result)) {\n        return result;\n    }\n    PyErr_Clear();\n#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS\n    if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear();\n    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)\n    if (likely(result)) {\n        return result;\n    }\n#else\n    result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);\n    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)\n    if (likely(result)) {\n        return __Pyx_NewRef(result);\n    }\n    PyErr_Clear();\n#endif\n    return __Pyx_GetBuiltinName(name);\n}\n\n/* PyObjectSetAttrStr */\n#if CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {\n    PyTypeObject* tp = Py_TYPE(obj);\n    if (likely(tp->tp_setattro))\n        return tp->tp_setattro(obj, attr_name, value);\n    return PyObject_SetAttr(obj, attr_name, value);\n}\n#endif\n\n/* GetItemInt */\nstatic PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {\n    PyObject *r;\n    if (unlikely(!j)) return NULL;\n    r = PyObject_GetItem(o, j);\n    Py_DECREF(j);\n    return r;\n}\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,\n                                                              int wraparound, int boundscheck, int unsafe_shared) {\n    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);\n#if CYTHON_ASSUME_SAFE_SIZE\n    Py_ssize_t wrapped_i = i;\n    if (wraparound & unlikely(i < 0)) {\n        wrapped_i += PyList_GET_SIZE(o);\n    }\n    if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS)) {\n        return __Pyx_PyList_GetItemRefFast(o, wrapped_i, unsafe_shared);\n    } else\n    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {\n        return __Pyx_NewRef(PyList_GET_ITEM(o, wrapped_i));\n    }\n    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));\n#else\n    (void)wraparound;\n    (void)boundscheck;\n    return PySequence_GetItem(o, i);\n#endif\n}\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,\n                                                              int wraparound, int boundscheck, int unsafe_shared) {\n    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);\n#if CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n    Py_ssize_t wrapped_i = i;\n    if (wraparound & unlikely(i < 0)) {\n        wrapped_i += PyTuple_GET_SIZE(o);\n    }\n    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {\n        return __Pyx_NewRef(PyTuple_GET_ITEM(o, wrapped_i));\n    }\n    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));\n#else\n    (void)wraparound;\n    (void)boundscheck;\n    return PySequence_GetItem(o, i);\n#endif\n}\nstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,\n                                                     int wraparound, int boundscheck, int unsafe_shared) {\n    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);\n#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE\n    if (is_list || PyList_CheckExact(o)) {\n        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);\n        if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)) {\n            return __Pyx_PyList_GetItemRefFast(o, n, unsafe_shared);\n        } else if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {\n            return __Pyx_NewRef(PyList_GET_ITEM(o, n));\n        }\n    } else\n    #if !CYTHON_AVOID_BORROWED_REFS\n    if (PyTuple_CheckExact(o)) {\n        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);\n        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {\n            return __Pyx_NewRef(PyTuple_GET_ITEM(o, n));\n        }\n    } else\n    #endif\n#endif\n#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY\n    {\n        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;\n        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;\n        if (!is_list && mm && mm->mp_subscript) {\n            PyObject *r, *key = PyLong_FromSsize_t(i);\n            if (unlikely(!key)) return NULL;\n            r = mm->mp_subscript(o, key);\n            Py_DECREF(key);\n            return r;\n        }\n        if (is_list || likely(sm && sm->sq_item)) {\n            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {\n                Py_ssize_t l = sm->sq_length(o);\n                if (likely(l >= 0)) {\n                    i += l;\n                } else {\n                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))\n                        return NULL;\n                    PyErr_Clear();\n                }\n            }\n            return sm->sq_item(o, i);\n        }\n    }\n#else\n    if (is_list || !PyMapping_Check(o)) {\n        return PySequence_GetItem(o, i);\n    }\n#endif\n    (void)wraparound;\n    (void)boundscheck;\n    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));\n}\n\n/* ObjectGetItem */\n#if CYTHON_USE_TYPE_SLOTS\nstatic PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {\n    PyObject *runerr = NULL;\n    Py_ssize_t key_value;\n    key_value = __Pyx_PyIndex_AsSsize_t(index);\n    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {\n        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1, 1);\n    }\n    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {\n        __Pyx_TypeName index_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(index));\n        PyErr_Clear();\n        PyErr_Format(PyExc_IndexError,\n            \"cannot fit '\" __Pyx_FMT_TYPENAME \"' into an index-sized integer\", index_type_name);\n        __Pyx_DECREF_TypeName(index_type_name);\n    }\n    return NULL;\n}\nstatic PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {\n    __Pyx_TypeName obj_type_name;\n    if (likely(PyType_Check(obj))) {\n        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);\n        if (!meth) {\n            PyErr_Clear();\n        } else {\n            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);\n            Py_DECREF(meth);\n            return result;\n        }\n    }\n    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));\n    PyErr_Format(PyExc_TypeError,\n        \"'\" __Pyx_FMT_TYPENAME \"' object is not subscriptable\", obj_type_name);\n    __Pyx_DECREF_TypeName(obj_type_name);\n    return NULL;\n}\nstatic PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {\n    PyTypeObject *tp = Py_TYPE(obj);\n    PyMappingMethods *mm = tp->tp_as_mapping;\n    PySequenceMethods *sm = tp->tp_as_sequence;\n    if (likely(mm && mm->mp_subscript)) {\n        return mm->mp_subscript(obj, key);\n    }\n    if (likely(sm && sm->sq_item)) {\n        return __Pyx_PyObject_GetIndex(obj, key);\n    }\n    return __Pyx_PyObject_GetItem_Slow(obj, key);\n}\n#endif\n\n/* PyObjectFastCallMethod */\n#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000\nstatic PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) {\n    PyObject *result;\n    PyObject *attr = PyObject_GetAttr(args[0], name);\n    if (unlikely(!attr))\n        return NULL;\n    result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1);\n    Py_DECREF(attr);\n    return result;\n}\n#endif\n\n/* HasAttr */\n#if __PYX_LIMITED_VERSION_HEX < 0x030d0000\nstatic CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {\n    PyObject *r;\n    if (unlikely(!PyUnicode_Check(n))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"hasattr(): attribute name must be string\");\n        return -1;\n    }\n    r = __Pyx_PyObject_GetAttrStrNoError(o, n);\n    if (!r) {\n        return (unlikely(PyErr_Occurred())) ? -1 : 0;\n    } else {\n        Py_DECREF(r);\n        return 1;\n    }\n}\n#endif\n\n/* DictGetItem */\n#if !CYTHON_COMPILING_IN_PYPY\nstatic PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {\n    PyObject *value;\n    if (unlikely(__Pyx_PyDict_GetItemRef(d, key, &value) == 0)) { // no value, no error\n        if (unlikely(PyTuple_Check(key))) {\n            PyObject* args = PyTuple_Pack(1, key);\n            if (likely(args)) {\n                PyErr_SetObject(PyExc_KeyError, args);\n                Py_DECREF(args);\n            }\n        } else {\n            PyErr_SetObject(PyExc_KeyError, key);\n        }\n    }\n    return value;\n}\n#endif\n\n/* RaiseTooManyValuesToUnpack */\nstatic CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {\n    PyErr_Format(PyExc_ValueError,\n                 \"too many values to unpack (expected %\" CYTHON_FORMAT_SSIZE_T \"d)\", expected);\n}\n\n/* RaiseNeedMoreValuesToUnpack */\nstatic CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {\n    PyErr_Format(PyExc_ValueError,\n                 \"need more than %\" CYTHON_FORMAT_SSIZE_T \"d value%.1s to unpack\",\n                 index, (index == 1) ? \"\" : \"s\");\n}\n\n/* IterFinish */\nstatic CYTHON_INLINE int __Pyx_IterFinish(void) {\n    PyObject* exc_type;\n    __Pyx_PyThreadState_declare\n    __Pyx_PyThreadState_assign\n    exc_type = __Pyx_PyErr_CurrentExceptionType();\n    if (unlikely(exc_type)) {\n        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))\n            return -1;\n        __Pyx_PyErr_Clear();\n        return 0;\n    }\n    return 0;\n}\n\n/* UnpackItemEndCheck */\nstatic int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {\n    if (unlikely(retval)) {\n        Py_DECREF(retval);\n        __Pyx_RaiseTooManyValuesError(expected);\n        return -1;\n    }\n    return __Pyx_IterFinish();\n}\n\n/* PyObjectCallNoArg (used by PyObjectCallMethod0) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {\n    PyObject *arg[2] = {NULL, NULL};\n    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);\n}\n\n/* PyObjectGetMethod (used by PyObjectCallMethod0) */\n#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))\nstatic int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {\n    PyObject *attr;\n#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP\n    __Pyx_TypeName type_name;\n    PyTypeObject *tp = Py_TYPE(obj);\n    PyObject *descr;\n    descrgetfunc f = NULL;\n    PyObject **dictptr, *dict;\n    int meth_found = 0;\n    assert (*method == NULL);\n    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {\n        attr = __Pyx_PyObject_GetAttrStr(obj, name);\n        goto try_unpack;\n    }\n    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {\n        return 0;\n    }\n    descr = _PyType_Lookup(tp, name);\n    if (likely(descr != NULL)) {\n        Py_INCREF(descr);\n#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR\n        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))\n#else\n        #ifdef __Pyx_CyFunction_USED\n        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))\n        #else\n        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))\n        #endif\n#endif\n        {\n            meth_found = 1;\n        } else {\n            f = Py_TYPE(descr)->tp_descr_get;\n            if (f != NULL && PyDescr_IsData(descr)) {\n                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));\n                Py_DECREF(descr);\n                goto try_unpack;\n            }\n        }\n    }\n    dictptr = _PyObject_GetDictPtr(obj);\n    if (dictptr != NULL && (dict = *dictptr) != NULL) {\n        Py_INCREF(dict);\n        attr = __Pyx_PyDict_GetItemStr(dict, name);\n        if (attr != NULL) {\n            Py_INCREF(attr);\n            Py_DECREF(dict);\n            Py_XDECREF(descr);\n            goto try_unpack;\n        }\n        Py_DECREF(dict);\n    }\n    if (meth_found) {\n        *method = descr;\n        return 1;\n    }\n    if (f != NULL) {\n        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));\n        Py_DECREF(descr);\n        goto try_unpack;\n    }\n    if (likely(descr != NULL)) {\n        *method = descr;\n        return 0;\n    }\n    type_name = __Pyx_PyType_GetFullyQualifiedName(tp);\n    PyErr_Format(PyExc_AttributeError,\n                 \"'\" __Pyx_FMT_TYPENAME \"' object has no attribute '%U'\",\n                 type_name, name);\n    __Pyx_DECREF_TypeName(type_name);\n    return 0;\n#else\n    attr = __Pyx_PyObject_GetAttrStr(obj, name);\n    goto try_unpack;\n#endif\ntry_unpack:\n#if CYTHON_UNPACK_METHODS\n    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {\n        PyObject *function = PyMethod_GET_FUNCTION(attr);\n        Py_INCREF(function);\n        Py_DECREF(attr);\n        *method = function;\n        return 1;\n    }\n#endif\n    *method = attr;\n    return 0;\n}\n#endif\n\n/* PyObjectCallMethod0 (used by dict_iter) */\nstatic PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {\n#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))\n    PyObject *args[1] = {obj};\n    (void) __Pyx_PyObject_CallOneArg;\n    (void) __Pyx_PyObject_CallNoArg;\n    return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);\n#else\n    PyObject *method = NULL, *result = NULL;\n    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);\n    if (likely(is_method)) {\n        result = __Pyx_PyObject_CallOneArg(method, obj);\n        Py_DECREF(method);\n        return result;\n    }\n    if (unlikely(!method)) goto bad;\n    result = __Pyx_PyObject_CallNoArg(method);\n    Py_DECREF(method);\nbad:\n    return result;\n#endif\n}\n\n/* RaiseNoneIterError (used by UnpackTupleError) */\nstatic CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {\n    PyErr_SetString(PyExc_TypeError, \"'NoneType' object is not iterable\");\n}\n\n/* UnpackTupleError (used by UnpackTuple2) */\nstatic void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {\n    if (t == Py_None) {\n      __Pyx_RaiseNoneNotIterableError();\n    } else {\n      Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(t);\n #if !CYTHON_ASSUME_SAFE_SIZE\n      if (unlikely(size < 0)) return;\n #endif\n      if (size < index) {\n        __Pyx_RaiseNeedMoreValuesError(size);\n      } else {\n        __Pyx_RaiseTooManyValuesError(index);\n      }\n    }\n}\n\n/* UnpackTuple2 (used by dict_iter) */\nstatic CYTHON_INLINE int __Pyx_unpack_tuple2(\n        PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple) {\n    if (likely(is_tuple || PyTuple_Check(tuple))) {\n        Py_ssize_t size;\n        if (has_known_size) {\n            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);\n        }\n        size = __Pyx_PyTuple_GET_SIZE(tuple);\n        if (likely(size == 2)) {\n            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);\n        }\n        if (size >= 0) {\n            __Pyx_UnpackTupleError(tuple, 2);\n        }\n        return -1;\n    } else {\n        return __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple);\n    }\n}\nstatic CYTHON_INLINE int __Pyx_unpack_tuple2_exact(\n        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {\n    PyObject *value1 = NULL, *value2 = NULL;\n#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS\n    value1 = __Pyx_PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;\n    value2 = __Pyx_PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;\n#else\n    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);\n    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);\n#endif\n    if (decref_tuple) {\n        Py_DECREF(tuple);\n    }\n    *pvalue1 = value1;\n    *pvalue2 = value2;\n    return 0;\n#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS\nbad:\n    Py_XDECREF(value1);\n    Py_XDECREF(value2);\n    if (decref_tuple) { Py_XDECREF(tuple); }\n    return -1;\n#endif\n}\nstatic int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,\n                                       int has_known_size, int decref_tuple) {\n    Py_ssize_t index;\n    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;\n    iternextfunc iternext;\n    iter = PyObject_GetIter(tuple);\n    if (unlikely(!iter)) goto bad;\n    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }\n    iternext = __Pyx_PyObject_GetIterNextFunc(iter);\n    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }\n    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }\n    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;\n    Py_DECREF(iter);\n    *pvalue1 = value1;\n    *pvalue2 = value2;\n    return 0;\nunpacking_failed:\n    if (!has_known_size && __Pyx_IterFinish() == 0)\n        __Pyx_RaiseNeedMoreValuesError(index);\nbad:\n    Py_XDECREF(iter);\n    Py_XDECREF(value1);\n    Py_XDECREF(value2);\n    if (decref_tuple) { Py_XDECREF(tuple); }\n    return -1;\n}\n\n/* dict_iter */\n#if CYTHON_COMPILING_IN_PYPY\n#include <string.h>\n#endif\nstatic CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,\n                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {\n    is_dict = is_dict || likely(PyDict_CheckExact(iterable));\n    *p_source_is_dict = is_dict;\n    if (is_dict) {\n#if !CYTHON_COMPILING_IN_PYPY\n        *p_orig_length = PyDict_Size(iterable);\n        Py_INCREF(iterable);\n        return iterable;\n#else\n        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;\n        PyObject **pp = NULL;\n        if (method_name) {\n            const char *name = PyUnicode_AsUTF8(method_name);\n            if (strcmp(name, \"iteritems\") == 0) pp = &py_items;\n            else if (strcmp(name, \"iterkeys\") == 0) pp = &py_keys;\n            else if (strcmp(name, \"itervalues\") == 0) pp = &py_values;\n            if (pp) {\n                if (!*pp) {\n                    *pp = PyUnicode_FromString(name + 4);\n                    if (!*pp)\n                        return NULL;\n                }\n                method_name = *pp;\n            }\n        }\n#endif\n    }\n    *p_orig_length = 0;\n    if (method_name) {\n        PyObject* iter;\n        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);\n        if (!iterable)\n            return NULL;\n#if !CYTHON_COMPILING_IN_PYPY\n        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))\n            return iterable;\n#endif\n        iter = PyObject_GetIter(iterable);\n        Py_DECREF(iterable);\n        return iter;\n    }\n    return PyObject_GetIter(iterable);\n}\n#if !CYTHON_AVOID_BORROWED_REFS\nstatic CYTHON_INLINE int __Pyx_dict_iter_next_source_is_dict(\n        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,\n        PyObject** pkey, PyObject** pvalue, PyObject** pitem) {\n    PyObject *key, *value;\n    if (unlikely(orig_length != PyDict_Size(iter_obj))) {\n        PyErr_SetString(PyExc_RuntimeError, \"dictionary changed size during iteration\");\n        return -1;\n    }\n    if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {\n        return 0;\n    }\n    if (pitem) {\n        PyObject* tuple = PyTuple_New(2);\n        if (unlikely(!tuple)) {\n            return -1;\n        }\n        Py_INCREF(key);\n        Py_INCREF(value);\n        #if CYTHON_ASSUME_SAFE_MACROS\n        PyTuple_SET_ITEM(tuple, 0, key);\n        PyTuple_SET_ITEM(tuple, 1, value);\n        #else\n        if (unlikely(PyTuple_SetItem(tuple, 0, key) < 0)) {\n            Py_DECREF(value);\n            Py_DECREF(tuple);\n            return -1;\n        }\n        if (unlikely(PyTuple_SetItem(tuple, 1, value) < 0)) {\n            Py_DECREF(tuple);\n            return -1;\n        }\n        #endif\n        *pitem = tuple;\n    } else {\n        if (pkey) {\n            Py_INCREF(key);\n            *pkey = key;\n        }\n        if (pvalue) {\n            Py_INCREF(value);\n            *pvalue = value;\n        }\n    }\n    return 1;\n}\n#endif\nstatic CYTHON_INLINE int __Pyx_dict_iter_next(\n        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,\n        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {\n    PyObject* next_item;\n#if !CYTHON_AVOID_BORROWED_REFS\n    if (source_is_dict) {\n        int result;\n#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_BEGIN_CRITICAL_SECTION(iter_obj);\n#endif\n        result = __Pyx_dict_iter_next_source_is_dict(iter_obj, orig_length, ppos, pkey, pvalue, pitem);\n#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_END_CRITICAL_SECTION();\n#endif\n        return result;\n    } else if (PyTuple_CheckExact(iter_obj)) {\n        Py_ssize_t pos = *ppos;\n        Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(iter_obj);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(tuple_size < 0)) return -1;\n        #endif\n        if (unlikely(pos >= tuple_size)) return 0;\n        *ppos = pos + 1;\n        #if CYTHON_ASSUME_SAFE_MACROS\n        next_item = PyTuple_GET_ITEM(iter_obj, pos);\n        #else\n        next_item = PyTuple_GetItem(iter_obj, pos);\n        if (unlikely(!next_item)) return -1;\n        #endif\n        Py_INCREF(next_item);\n    } else if (PyList_CheckExact(iter_obj)) {\n        Py_ssize_t pos = *ppos;\n        Py_ssize_t list_size = __Pyx_PyList_GET_SIZE(iter_obj);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(list_size < 0)) return -1;\n        #endif\n        if (unlikely(pos >= list_size)) return 0;\n        *ppos = pos + 1;\n        next_item = __Pyx_PyList_GetItemRef(iter_obj, pos);\n        if (unlikely(!next_item)) return -1;\n    } else\n#endif\n    {\n        next_item = PyIter_Next(iter_obj);\n        if (unlikely(!next_item)) {\n            return __Pyx_IterFinish();\n        }\n    }\n    if (pitem) {\n        *pitem = next_item;\n    } else if (pkey && pvalue) {\n        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))\n            return -1;\n    } else if (pkey) {\n        *pkey = next_item;\n    } else {\n        *pvalue = next_item;\n    }\n    return 1;\n}\n\n/* PyLongBinop */\n#if !CYTHON_COMPILING_IN_PYPY\nstatic PyObject* __Pyx_Fallback___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, int inplace) {\n    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);\n}\n#if CYTHON_USE_PYLONG_INTERNALS\nstatic PyObject* __Pyx_Unpacked___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {\n    CYTHON_MAYBE_UNUSED_VAR(inplace);\n    CYTHON_UNUSED_VAR(zerodivision_check);\n    const long b = intval;\n    long a;\n    const PY_LONG_LONG llb = intval;\n    PY_LONG_LONG lla;\n    if (unlikely(__Pyx_PyLong_IsZero(op1))) {\n        return __Pyx_NewRef(op2);\n    }\n    const int is_positive = __Pyx_PyLong_IsPos(op1);\n    const digit* digits = __Pyx_PyLong_Digits(op1);\n    const Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);\n    if (likely(size == 1)) {\n        a = (long) digits[0];\n        if (!is_positive) a *= -1;\n    } else {\n        switch (size) {\n            case 2:\n                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {\n                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));\n                    if (!is_positive) a *= -1;\n                    goto calculate_long;\n                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {\n                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));\n                    if (!is_positive) lla *= -1;\n                    goto calculate_long_long;\n                }\n                break;\n            case 3:\n                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {\n                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));\n                    if (!is_positive) a *= -1;\n                    goto calculate_long;\n                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {\n                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));\n                    if (!is_positive) lla *= -1;\n                    goto calculate_long_long;\n                }\n                break;\n            case 4:\n                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {\n                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));\n                    if (!is_positive) a *= -1;\n                    goto calculate_long;\n                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {\n                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));\n                    if (!is_positive) lla *= -1;\n                    goto calculate_long_long;\n                }\n                break;\n        }\n        return PyLong_Type.tp_as_number->nb_add(op1, op2);\n    }\n    calculate_long:\n        {\n            long x;\n            x = a + b;\n            return PyLong_FromLong(x);\n        }\n    calculate_long_long:\n        {\n            PY_LONG_LONG llx;\n            llx = lla + llb;\n            return PyLong_FromLongLong(llx);\n        }\n    \n}\n#endif\nstatic PyObject* __Pyx_Float___Pyx_PyLong_AddObjC(PyObject *float_val, long intval, int zerodivision_check) {\n    CYTHON_UNUSED_VAR(zerodivision_check);\n    const long b = intval;\n    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);\n        double result;\n        \n        result = ((double)a) + (double)b;\n        return PyFloat_FromDouble(result);\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {\n    CYTHON_MAYBE_UNUSED_VAR(intval);\n    CYTHON_UNUSED_VAR(zerodivision_check);\n    #if CYTHON_USE_PYLONG_INTERNALS\n    if (likely(PyLong_CheckExact(op1))) {\n        return __Pyx_Unpacked___Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check);\n    }\n    #endif\n    if (PyFloat_CheckExact(op1)) {\n        return __Pyx_Float___Pyx_PyLong_AddObjC(op1, intval, zerodivision_check);\n    }\n    return __Pyx_Fallback___Pyx_PyLong_AddObjC(op1, op2, inplace);\n}\n#endif\n\n/* PyObjectVectorCallKwBuilder */\n#if CYTHON_VECTORCALL\nstatic int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {\n    (void)__Pyx_PyObject_FastCallDict;\n    if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;\n    Py_INCREF(key);\n    args[n] = value;\n    return 0;\n}\nCYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {\n    (void)__Pyx_VectorcallBuilder_AddArgStr;\n    if (unlikely(!PyUnicode_Check(key))) {\n        PyErr_SetString(PyExc_TypeError, \"keywords must be strings\");\n        return -1;\n    }\n    return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n);\n}\nstatic int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) {\n    PyObject *pyKey = PyUnicode_FromString(key);\n    if (!pyKey) return -1;\n    return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n);\n}\n#else // CYTHON_VECTORCALL\nCYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) {\n    if (unlikely(!PyUnicode_Check(key))) {\n        PyErr_SetString(PyExc_TypeError, \"keywords must be strings\");\n        return -1;\n    }\n    return PyDict_SetItem(builder, key, value);\n}\n#endif\n\n/* CIntToPyUnicode */\nstatic CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||\n                    !(sizeof(value) <= 2 || value & ~ (Py_ssize_t) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {\n        PyErr_SetString(PyExc_OverflowError, \"%c arg not in range(0x110000)\");\n        return NULL;\n    }\n    if (width <= 1) {\n        return PyUnicode_FromOrdinal((int) value);\n    }\n    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);\n}\nstatic CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {\n    char digits[sizeof(Py_ssize_t)*3+2];\n    char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;\n    const char *hex_digits = DIGITS_HEX;\n    Py_ssize_t length, ulength;\n    int prepend_sign, last_one_off;\n    Py_ssize_t remaining;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (format_char == 'X') {\n        hex_digits += 16;\n        format_char = 'x';\n    }\n    remaining = value;\n    last_one_off = 0;\n    dpos = end;\n    do {\n        int digit_pos;\n        switch (format_char) {\n        case 'o':\n            digit_pos = abs((int)(remaining % (8*8)));\n            remaining = (Py_ssize_t) (remaining / (8*8));\n            dpos -= 2;\n            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);\n            last_one_off = (digit_pos < 8);\n            break;\n        case 'd':\n            digit_pos = abs((int)(remaining % (10*10)));\n            remaining = (Py_ssize_t) (remaining / (10*10));\n            dpos -= 2;\n            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);\n            last_one_off = (digit_pos < 10);\n            break;\n        case 'x':\n            *(--dpos) = hex_digits[abs((int)(remaining % 16))];\n            remaining = (Py_ssize_t) (remaining / 16);\n            break;\n        default:\n            assert(0);\n            break;\n        }\n    } while (unlikely(remaining != 0));\n    assert(!last_one_off || *dpos == '0');\n    dpos += last_one_off;\n    length = end - dpos;\n    ulength = length;\n    prepend_sign = 0;\n    if (!is_unsigned && value <= neg_one) {\n        if (padding_char == ' ' || width <= length + 1) {\n            *(--dpos) = '-';\n            ++length;\n        } else {\n            prepend_sign = 1;\n        }\n        ++ulength;\n    }\n    if (width > ulength) {\n        ulength = width;\n    }\n    if (ulength == 1) {\n        return PyUnicode_FromOrdinal(*dpos);\n    }\n    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);\n}\n\n/* SliceTupleAndList */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {\n    Py_ssize_t start = *_start, stop = *_stop, length = *_length;\n    if (start < 0) {\n        start += length;\n        if (start < 0)\n            start = 0;\n    }\n    if (stop < 0)\n        stop += length;\n    else if (stop > length)\n        stop = length;\n    *_length = stop - start;\n    *_start = start;\n    *_stop = stop;\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(\n            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {\n    Py_ssize_t length = PyTuple_GET_SIZE(src);\n    __Pyx_crop_slice(&start, &stop, &length);\n    return __Pyx_PyTuple_FromArray(((PyTupleObject*)src)->ob_item + start, length);\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice_locked(\n            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {\n    Py_ssize_t length = PyList_GET_SIZE(src);\n    __Pyx_crop_slice(&start, &stop, &length);\n    if (length <= 0) {\n        return PyList_New(0);\n    }\n    return __Pyx_PyList_FromArray(((PyListObject*)src)->ob_item + start, length);\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(\n            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {\n    PyObject *result;\n    __Pyx_BEGIN_CRITICAL_SECTION(src);\n    result = __Pyx_PyList_GetSlice_locked(src, start, stop);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\n#endif // CYTHON_COMPILING_IN_CPYTHON\n\n/* PyObjectFormatAndDecref */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {\n    if (unlikely(!s)) return NULL;\n    if (likely(PyUnicode_CheckExact(s))) return s;\n    return __Pyx_PyObject_FormatAndDecref(s, f);\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {\n    PyObject *result;\n    if (unlikely(!s)) return NULL;\n    result = PyObject_Format(s, f);\n    Py_DECREF(s);\n    return result;\n}\n\n/* py_dict_keys */\nstatic CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) {\n    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_keys, d);\n}\n\n/* pybuiltin_invalid (used by pyint_simplify) */\nstatic void __Pyx_PyBuiltin_Invalid(PyObject *obj, const char *type_name, const char *argname) {\n    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));\n    if (argname) {\n        PyErr_Format(PyExc_TypeError,\n            \"Argument '%.200s' has incorrect type (expected %.200s, got \" __Pyx_FMT_TYPENAME \")\",\n            argname, type_name, obj_type_name\n        );\n    } else {\n        PyErr_Format(PyExc_TypeError,\n            \"Expected %.200s, got \" __Pyx_FMT_TYPENAME,\n            type_name, obj_type_name\n        );\n    }\n    __Pyx_DECREF_TypeName(obj_type_name);\n}\n\n/* pyint_simplify */\nstatic CYTHON_INLINE int __Pyx_PyInt_FromNumber(PyObject **number_var, const char *argname, int accept_none) {\n    PyObject *number = *number_var;\n    if (likely((accept_none && number == Py_None) || PyLong_CheckExact(number))) {\n        return 0;\n    }\n    PyObject *int_object;\n    if (likely(PyNumber_Check(number))) {\n        int_object = PyNumber_Long(number);\n        if (unlikely(!int_object)) goto bad;\n    } else {\n        __Pyx_PyBuiltin_Invalid(number, \"int\", argname);\n        goto bad;\n    }\n    *number_var = int_object;\n    Py_DECREF(number);\n    return 0;\nbad:\n    *number_var = NULL;\n    Py_DECREF(number);\n    return -1;\n}\n\n/* SliceObject */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,\n        Py_ssize_t cstart, Py_ssize_t cstop,\n        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,\n        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {\n    __Pyx_TypeName obj_type_name;\n#if CYTHON_USE_TYPE_SLOTS\n    PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping;\n    if (likely(mp && mp->mp_subscript))\n#endif\n    {\n        PyObject* result;\n        PyObject *py_slice, *py_start, *py_stop;\n        if (_py_slice) {\n            py_slice = *_py_slice;\n        } else {\n            PyObject* owned_start = NULL;\n            PyObject* owned_stop = NULL;\n            if (_py_start) {\n                py_start = *_py_start;\n            } else {\n                if (has_cstart) {\n                    owned_start = py_start = PyLong_FromSsize_t(cstart);\n                    if (unlikely(!py_start)) goto bad;\n                } else\n                    py_start = Py_None;\n            }\n            if (_py_stop) {\n                py_stop = *_py_stop;\n            } else {\n                if (has_cstop) {\n                    owned_stop = py_stop = PyLong_FromSsize_t(cstop);\n                    if (unlikely(!py_stop)) {\n                        Py_XDECREF(owned_start);\n                        goto bad;\n                    }\n                } else\n                    py_stop = Py_None;\n            }\n            py_slice = PySlice_New(py_start, py_stop, Py_None);\n            Py_XDECREF(owned_start);\n            Py_XDECREF(owned_stop);\n            if (unlikely(!py_slice)) goto bad;\n        }\n#if CYTHON_USE_TYPE_SLOTS\n        result = mp->mp_subscript(obj, py_slice);\n#else\n        result = PyObject_GetItem(obj, py_slice);\n#endif\n        if (!_py_slice) {\n            Py_DECREF(py_slice);\n        }\n        return result;\n    }\n    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));\n    PyErr_Format(PyExc_TypeError,\n        \"'\" __Pyx_FMT_TYPENAME \"' object is unsliceable\", obj_type_name);\n    __Pyx_DECREF_TypeName(obj_type_name);\nbad:\n    return NULL;\n}\n\n/* SetItemInt */\nstatic int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {\n    int r;\n    if (unlikely(!j)) return -1;\n    r = PyObject_SetItem(o, j, v);\n    Py_DECREF(j);\n    return r;\n}\nstatic CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,\n                                               int wraparound, int boundscheck, int unsafe_shared) {\n    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);\n#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS\n    if (is_list || PyList_CheckExact(o)) {\n        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));\n        if ((CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared))) {\n            Py_INCREF(v);\n            return PyList_SetItem(o, n, v);\n        } else if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {\n            PyObject* old;\n            Py_INCREF(v);\n            old = PyList_GET_ITEM(o, n);\n            PyList_SET_ITEM(o, n, v);\n            Py_DECREF(old);\n            return 0;\n        }\n    } else\n#endif\n#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY\n    {\n        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;\n        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;\n        if (!is_list && mm && mm->mp_ass_subscript) {\n            int r;\n            PyObject *key = PyLong_FromSsize_t(i);\n            if (unlikely(!key)) return -1;\n            r = mm->mp_ass_subscript(o, key, v);\n            Py_DECREF(key);\n            return r;\n        }\n        if (is_list || likely(sm && sm->sq_ass_item)) {\n            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {\n                Py_ssize_t l = sm->sq_length(o);\n                if (likely(l >= 0)) {\n                    i += l;\n                } else {\n                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))\n                        return -1;\n                    PyErr_Clear();\n                }\n            }\n            return sm->sq_ass_item(o, i, v);\n        }\n    }\n#else\n    if (is_list || !PyMapping_Check(o)) {\n        return PySequence_SetItem(o, i, v);\n    }\n#endif\n    (void)wraparound;\n    (void)boundscheck;\n    return __Pyx_SetItemInt_Generic(o, PyLong_FromSsize_t(i), v);\n}\n\n/* TypeImport */\n#ifndef __PYX_HAVE_RT_ImportType_3_2_4\n#define __PYX_HAVE_RT_ImportType_3_2_4\nstatic PyTypeObject *__Pyx_ImportType_3_2_4(PyObject *module, const char *module_name, const char *class_name,\n    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size)\n{\n    PyObject *result = 0;\n    Py_ssize_t basicsize;\n    Py_ssize_t itemsize;\n#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)\n    PyObject *py_basicsize;\n    PyObject *py_itemsize;\n#endif\n    result = PyObject_GetAttrString(module, class_name);\n    if (!result)\n        goto bad;\n    if (!PyType_Check(result)) {\n        PyErr_Format(PyExc_TypeError,\n            \"%.200s.%.200s is not a type object\",\n            module_name, class_name);\n        goto bad;\n    }\n#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )\n    basicsize = ((PyTypeObject *)result)->tp_basicsize;\n    itemsize = ((PyTypeObject *)result)->tp_itemsize;\n#else\n    if (size == 0) {\n        return (PyTypeObject *)result;\n    }\n    py_basicsize = PyObject_GetAttrString(result, \"__basicsize__\");\n    if (!py_basicsize)\n        goto bad;\n    basicsize = PyLong_AsSsize_t(py_basicsize);\n    Py_DECREF(py_basicsize);\n    py_basicsize = 0;\n    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())\n        goto bad;\n    py_itemsize = PyObject_GetAttrString(result, \"__itemsize__\");\n    if (!py_itemsize)\n        goto bad;\n    itemsize = PyLong_AsSsize_t(py_itemsize);\n    Py_DECREF(py_itemsize);\n    py_itemsize = 0;\n    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())\n        goto bad;\n#endif\n    if (itemsize) {\n        if (size % alignment) {\n            alignment = size % alignment;\n        }\n        if (itemsize < (Py_ssize_t)alignment)\n            itemsize = (Py_ssize_t)alignment;\n    }\n    if ((size_t)(basicsize + itemsize) < size) {\n        PyErr_Format(PyExc_ValueError,\n            \"%.200s.%.200s size changed, may indicate binary incompatibility. \"\n            \"Expected %zd from C header, got %zd from PyObject\",\n            module_name, class_name, size, basicsize+itemsize);\n        goto bad;\n    }\n    if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_4 &&\n            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {\n        PyErr_Format(PyExc_ValueError,\n            \"%.200s.%.200s size changed, may indicate binary incompatibility. \"\n            \"Expected %zd from C header, got %zd-%zd from PyObject\",\n            module_name, class_name, size, basicsize, basicsize+itemsize);\n        goto bad;\n    }\n    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_4 && (size_t)basicsize > size) {\n        if (PyErr_WarnFormat(NULL, 0,\n                \"%.200s.%.200s size changed, may indicate binary incompatibility. \"\n                \"Expected %zd from C header, got %zd from PyObject\",\n                module_name, class_name, size, basicsize) < 0) {\n            goto bad;\n        }\n    }\n    return (PyTypeObject *)result;\nbad:\n    Py_XDECREF(result);\n    return NULL;\n}\n#endif\n\n/* dict_setdefault (used by FetchCommonType) */\nstatic CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {\n    PyObject* value;\n#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)\n    PyDict_SetDefaultRef(d, key, default_value, &value);\n#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000\n    PyObject *args[] = {d, key, default_value};\n    value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);\n#elif CYTHON_COMPILING_IN_LIMITED_API\n    value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);\n#else\n    value = PyDict_SetDefault(d, key, default_value);\n    if (unlikely(!value)) return NULL;\n    Py_INCREF(value);\n#endif\n    return value;\n}\n\n/* LimitedApiGetTypeDict (used by SetItemOnTypeDict) */\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic Py_ssize_t __Pyx_GetTypeDictOffset(void) {\n    PyObject *tp_dictoffset_o;\n    Py_ssize_t tp_dictoffset;\n    tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), \"__dictoffset__\");\n    if (unlikely(!tp_dictoffset_o)) return -1;\n    tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);\n    Py_DECREF(tp_dictoffset_o);\n    if (unlikely(tp_dictoffset == 0)) {\n        PyErr_SetString(\n            PyExc_TypeError,\n            \"'type' doesn't have a dictoffset\");\n        return -1;\n    } else if (unlikely(tp_dictoffset < 0)) {\n        PyErr_SetString(\n            PyExc_TypeError,\n            \"'type' has an unexpected negative dictoffset. \"\n            \"Please report this as Cython bug\");\n        return -1;\n    }\n    return tp_dictoffset;\n}\nstatic PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {\n    static Py_ssize_t tp_dictoffset = 0;\n    if (unlikely(tp_dictoffset == 0)) {\n        tp_dictoffset = __Pyx_GetTypeDictOffset();\n        if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {\n            tp_dictoffset = 0; // try again next time?\n            return NULL;\n        }\n    }\n    return *(PyObject**)((char*)tp + tp_dictoffset);\n}\n#endif\n\n/* SetItemOnTypeDict (used by FixUpExtensionType) */\nstatic int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {\n    int result;\n    PyObject *tp_dict;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    tp_dict = __Pyx_GetTypeDict(tp);\n    if (unlikely(!tp_dict)) return -1;\n#else\n    tp_dict = tp->tp_dict;\n#endif\n    result = PyDict_SetItem(tp_dict, k, v);\n    if (likely(!result)) {\n        PyType_Modified(tp);\n        if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {\n            PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name,  (PyObject *) tp, k, NULL);\n            if (!setNameResult) return -1;\n            Py_DECREF(setNameResult);\n        }\n    }\n    return result;\n}\n\n/* FixUpExtensionType (used by FetchCommonType) */\nstatic int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {\n#if __PYX_LIMITED_VERSION_HEX > 0x030900B1\n    CYTHON_UNUSED_VAR(spec);\n    CYTHON_UNUSED_VAR(type);\n    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);\n#else\n    const PyType_Slot *slot = spec->slots;\n    int changed = 0;\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    while (slot && slot->slot && slot->slot != Py_tp_members)\n        slot++;\n    if (slot && slot->slot == Py_tp_members) {\n#if !CYTHON_COMPILING_IN_CPYTHON\n        const\n#endif  // !CYTHON_COMPILING_IN_CPYTHON)\n            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;\n        while (memb && memb->name) {\n            if (memb->name[0] == '_' && memb->name[1] == '_') {\n                if (strcmp(memb->name, \"__weaklistoffset__\") == 0) {\n                    assert(memb->type == T_PYSSIZET);\n                    assert(memb->flags == READONLY);\n                    type->tp_weaklistoffset = memb->offset;\n                    changed = 1;\n                }\n                else if (strcmp(memb->name, \"__dictoffset__\") == 0) {\n                    assert(memb->type == T_PYSSIZET);\n                    assert(memb->flags == READONLY);\n                    type->tp_dictoffset = memb->offset;\n                    changed = 1;\n                }\n#if CYTHON_METH_FASTCALL\n                else if (strcmp(memb->name, \"__vectorcalloffset__\") == 0) {\n                    assert(memb->type == T_PYSSIZET);\n                    assert(memb->flags == READONLY);\n                    type->tp_vectorcall_offset = memb->offset;\n                    changed = 1;\n                }\n#endif  // CYTHON_METH_FASTCALL\n#if !CYTHON_COMPILING_IN_PYPY\n                else if (strcmp(memb->name, \"__module__\") == 0) {\n                    PyObject *descr;\n                    assert(memb->type == T_OBJECT);\n                    assert(memb->flags == 0 || memb->flags == READONLY);\n                    descr = PyDescr_NewMember(type, memb);\n                    if (unlikely(!descr))\n                        return -1;\n                    int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);\n                    Py_DECREF(descr);\n                    if (unlikely(set_item_result < 0)) {\n                        return -1;\n                    }\n                    changed = 1;\n                }\n#endif  // !CYTHON_COMPILING_IN_PYPY\n            }\n            memb++;\n        }\n    }\n#endif  // !CYTHON_COMPILING_IN_LIMITED_API\n#if !CYTHON_COMPILING_IN_PYPY\n    slot = spec->slots;\n    while (slot && slot->slot && slot->slot != Py_tp_getset)\n        slot++;\n    if (slot && slot->slot == Py_tp_getset) {\n        PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc;\n        while (getset && getset->name) {\n            if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, \"__module__\") == 0) {\n                PyObject *descr = PyDescr_NewGetSet(type, getset);\n                if (unlikely(!descr))\n                    return -1;\n                #if CYTHON_COMPILING_IN_LIMITED_API\n                PyObject *pyname = PyUnicode_FromString(getset->name);\n                if (unlikely(!pyname)) {\n                    Py_DECREF(descr);\n                    return -1;\n                }\n                int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr);\n                Py_DECREF(pyname);\n                #else\n                CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);\n                int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);\n                #endif\n                Py_DECREF(descr);\n                if (unlikely(set_item_result < 0)) {\n                    return -1;\n                }\n                changed = 1;\n            }\n            ++getset;\n        }\n    }\n#else\n    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);\n#endif  // !CYTHON_COMPILING_IN_PYPY\n    if (changed)\n        PyType_Modified(type);\n#endif  // PY_VERSION_HEX > 0x030900B1\n    return 0;\n}\n\n/* AddModuleRef (used by FetchSharedCythonModule) */\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n  static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {\n      PyObject *module_dict = PyImport_GetModuleDict();\n      PyObject *m;\n      if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {\n          return NULL;\n      }\n      if (m != NULL && PyModule_Check(m)) {\n          return m;\n      }\n      Py_XDECREF(m);\n      m = PyModule_NewObject(name);\n      if (m == NULL)\n          return NULL;\n      if (PyDict_CheckExact(module_dict)) {\n          PyObject *new_m;\n          (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);\n          Py_DECREF(m);\n          return new_m;\n      } else {\n           if (PyObject_SetItem(module_dict, name, m) != 0) {\n                Py_DECREF(m);\n                return NULL;\n            }\n            return m;\n      }\n  }\n  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {\n      PyObject *py_name = PyUnicode_FromString(name);\n      if (!py_name) return NULL;\n      PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);\n      Py_DECREF(py_name);\n      return module;\n  }\n#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000\n  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)\n#else\n  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {\n      PyObject *module = PyImport_AddModule(name);\n      Py_XINCREF(module);\n      return module;\n  }\n#endif\n\n/* FetchSharedCythonModule (used by FetchCommonType) */\nstatic PyObject *__Pyx_FetchSharedCythonABIModule(void) {\n    return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);\n}\n\n/* FetchCommonType (used by CommonTypesMetaclass) */\n#if __PYX_LIMITED_VERSION_HEX < 0x030C0000\nstatic PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {\n    PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);\n    if (result && metaclass) {\n        PyObject *old_tp = (PyObject*)Py_TYPE(result);\n    Py_INCREF((PyObject*)metaclass);\n#if __PYX_LIMITED_VERSION_HEX >= 0x03090000\n        Py_SET_TYPE(result, metaclass);\n#else\n        result->ob_type = metaclass;\n#endif\n        Py_DECREF(old_tp);\n    }\n    return result;\n}\n#else\n#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)\n#endif\nstatic int __Pyx_VerifyCachedType(PyObject *cached_type,\n                               const char *name,\n                               Py_ssize_t expected_basicsize) {\n    Py_ssize_t basicsize;\n    if (!PyType_Check(cached_type)) {\n        PyErr_Format(PyExc_TypeError,\n            \"Shared Cython type %.200s is not a type object\", name);\n        return -1;\n    }\n    if (expected_basicsize == 0) {\n        return 0; // size is inherited, nothing useful to check\n    }\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *py_basicsize;\n    py_basicsize = PyObject_GetAttrString(cached_type, \"__basicsize__\");\n    if (unlikely(!py_basicsize)) return -1;\n    basicsize = PyLong_AsSsize_t(py_basicsize);\n    Py_DECREF(py_basicsize);\n    py_basicsize = NULL;\n    if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;\n#else\n    basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;\n#endif\n    if (basicsize != expected_basicsize) {\n        PyErr_Format(PyExc_TypeError,\n            \"Shared Cython type %.200s has the wrong size, try recompiling\",\n            name);\n        return -1;\n    }\n    return 0;\n}\nstatic PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {\n    PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;\n    int get_item_ref_result;\n    const char* object_name = strrchr(spec->name, '.');\n    object_name = object_name ? object_name+1 : spec->name;\n    py_object_name = PyUnicode_FromString(object_name);\n    if (!py_object_name) return NULL;\n    abi_module = __Pyx_FetchSharedCythonABIModule();\n    if (!abi_module) goto done;\n    abi_module_dict = PyModule_GetDict(abi_module);\n    if (!abi_module_dict) goto done;\n    get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);\n    if (get_item_ref_result == 1) {\n        if (__Pyx_VerifyCachedType(\n              cached_type,\n              object_name,\n              spec->basicsize) < 0) {\n            goto bad;\n        }\n        goto done;\n    } else if (unlikely(get_item_ref_result == -1)) {\n        goto bad;\n    }\n    cached_type = __Pyx_PyType_FromMetaclass(\n        metaclass,\n        CYTHON_USE_MODULE_STATE ? module : abi_module,\n        spec, bases);\n    if (unlikely(!cached_type)) goto bad;\n    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;\n    new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);\n    if (unlikely(new_cached_type != cached_type)) {\n        if (unlikely(!new_cached_type)) goto bad;\n        Py_DECREF(cached_type);\n        cached_type = new_cached_type;\n        if (__Pyx_VerifyCachedType(\n                cached_type,\n                object_name,\n                spec->basicsize) < 0) {\n            goto bad;\n        }\n        goto done;\n    } else {\n        Py_DECREF(new_cached_type);\n    }\ndone:\n    Py_XDECREF(abi_module);\n    Py_DECREF(py_object_name);\n    assert(cached_type == NULL || PyType_Check(cached_type));\n    return (PyTypeObject *) cached_type;\nbad:\n    Py_XDECREF(cached_type);\n    cached_type = NULL;\n    goto done;\n}\n\n/* CommonTypesMetaclass (used by CythonFunctionShared) */\nstatic PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {\n    return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);\n}\n#if __PYX_LIMITED_VERSION_HEX < 0x030A0000\nstatic PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {\n    PyErr_SetString(PyExc_TypeError, \"Cannot instantiate Cython internal types\");\n    return NULL;\n}\nstatic int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {\n    PyErr_SetString(PyExc_TypeError, \"Cython internal types are immutable\");\n    return -1;\n}\n#endif\nstatic PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {\n    {\"__module__\", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},\n    {0, 0, 0, 0, 0}\n};\nstatic PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {\n    {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},\n    #if __PYX_LIMITED_VERSION_HEX < 0x030A0000\n    {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},\n    {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},\n    {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},\n    #endif\n    {0, 0}\n};\nstatic PyType_Spec __pyx_CommonTypesMetaclass_spec = {\n    __PYX_TYPE_MODULE_PREFIX \"_common_types_metatype\",\n    0,\n    0,\n    Py_TPFLAGS_IMMUTABLETYPE |\n    Py_TPFLAGS_DISALLOW_INSTANTIATION |\n    Py_TPFLAGS_DEFAULT,\n    __pyx_CommonTypesMetaclass_slots\n};\nstatic int __pyx_CommonTypesMetaclass_init(PyObject *module) {\n    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);\n    PyObject *bases = PyTuple_Pack(1, &PyType_Type);\n    if (unlikely(!bases)) {\n        return -1;\n    }\n    mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);\n    Py_DECREF(bases);\n    if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {\n        return -1;\n    }\n    return 0;\n}\n\n/* CallTypeTraverse (used by CythonFunctionShared) */\n#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)\n#else\nstatic int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {\n    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000\n    if (__Pyx_get_runtime_version() < 0x03090000) return 0;\n    #endif\n    if (!always_call) {\n        PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);\n        unsigned long flags = PyType_GetFlags(base);\n        if (flags & Py_TPFLAGS_HEAPTYPE) {\n            return 0;\n        }\n    }\n    Py_VISIT((PyObject*)Py_TYPE(o));\n    return 0;\n}\n#endif\n\n/* PyMethodNew (used by CythonFunctionShared) */\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {\n    PyObject *result;\n    CYTHON_UNUSED_VAR(typ);\n    if (!self)\n        return __Pyx_NewRef(func);\n    #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000\n    {\n        PyObject *args[] = {func, self};\n        result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);\n    }\n    #else\n    result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);\n    #endif\n    return result;\n}\n#else\nstatic PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {\n    CYTHON_UNUSED_VAR(typ);\n    if (!self)\n        return __Pyx_NewRef(func);\n    return PyMethod_New(func, self);\n}\n#endif\n\n/* PyVectorcallFastCallDict (used by CythonFunctionShared) */\n#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL\nstatic PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)\n{\n    PyObject *res = NULL;\n    PyObject *kwnames;\n    PyObject **newargs;\n    PyObject **kwvalues;\n    Py_ssize_t i;\n    #if CYTHON_AVOID_BORROWED_REFS\n    PyObject *pos;\n    #else\n    Py_ssize_t pos;\n    #endif\n    size_t j;\n    PyObject *key, *value;\n    unsigned long keys_are_strings;\n    #if !CYTHON_ASSUME_SAFE_SIZE\n    Py_ssize_t nkw = PyDict_Size(kw);\n    if (unlikely(nkw == -1)) return NULL;\n    #else\n    Py_ssize_t nkw = PyDict_GET_SIZE(kw);\n    #endif\n    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));\n    if (unlikely(newargs == NULL)) {\n        PyErr_NoMemory();\n        return NULL;\n    }\n    for (j = 0; j < nargs; j++) newargs[j] = args[j];\n    kwnames = PyTuple_New(nkw);\n    if (unlikely(kwnames == NULL)) {\n        PyMem_Free(newargs);\n        return NULL;\n    }\n    kwvalues = newargs + nargs;\n    pos = 0;\n    i = 0;\n    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;\n    while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {\n        keys_are_strings &=\n        #if CYTHON_COMPILING_IN_LIMITED_API\n            PyType_GetFlags(Py_TYPE(key));\n        #else\n            Py_TYPE(key)->tp_flags;\n        #endif\n        #if !CYTHON_ASSUME_SAFE_MACROS\n        if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;\n        #else\n        PyTuple_SET_ITEM(kwnames, i, key);\n        #endif\n        kwvalues[i] = value;\n        i++;\n    }\n    if (unlikely(!keys_are_strings)) {\n        PyErr_SetString(PyExc_TypeError, \"keywords must be strings\");\n        goto cleanup;\n    }\n    res = vc(func, newargs, nargs, kwnames);\ncleanup:\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_DECREF(pos);\n    #endif\n    Py_DECREF(kwnames);\n    for (i = 0; i < nkw; i++)\n        Py_DECREF(kwvalues[i]);\n    PyMem_Free(newargs);\n    return res;\n}\nstatic CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)\n{\n    Py_ssize_t kw_size =\n        likely(kw == NULL) ?\n        0 :\n#if !CYTHON_ASSUME_SAFE_SIZE\n        PyDict_Size(kw);\n#else\n        PyDict_GET_SIZE(kw);\n#endif\n    if (kw_size == 0) {\n        return vc(func, args, nargs, NULL);\n    }\n#if !CYTHON_ASSUME_SAFE_SIZE\n    else if (unlikely(kw_size == -1)) {\n        return NULL;\n    }\n#endif\n    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);\n}\n#endif\n\n/* CythonFunctionShared (used by CythonFunction) */\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {\n    if (__Pyx_CyFunction_Check(func)) {\n        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;\n    } else if (PyCFunction_Check(func)) {\n        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;\n    }\n    return 0;\n}\nstatic CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {\n    if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {\n        int result;\n        PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);\n        if (unlikely(!newFunc)) {\n            PyErr_Clear(); // It's only an optimization, so don't throw an error\n            return 0;\n        }\n        result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);\n        Py_DECREF(newFunc);\n        return result;\n    }\n    return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);\n}\n#else\nstatic CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {\n    if (PyMethod_Check(func)) {\n        func = PyMethod_GET_FUNCTION(func);\n    }\n    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;\n}\n#endif\nstatic CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {\n#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API\n    __Pyx_Py_XDECREF_SET(\n        __Pyx_CyFunction_GetClassObj(f),\n            ((classobj) ? __Pyx_NewRef(classobj) : NULL));\n#else\n    __Pyx_Py_XDECREF_SET(\n        ((PyCMethodObject *) (f))->mm_class,\n        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));\n#endif\n}\nstatic PyObject *\n__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)\n{\n    if (unlikely(op->func_doc == NULL)) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n        op->func_doc = PyObject_GetAttrString(op->func, \"__doc__\");\n        if (unlikely(!op->func_doc)) return NULL;\n#else\n        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {\n            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);\n            if (unlikely(op->func_doc == NULL))\n                return NULL;\n        } else {\n            Py_INCREF(Py_None);\n            return Py_None;\n        }\n#endif\n    }\n    Py_INCREF(op->func_doc);\n    return op->func_doc;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) {\n    PyObject *result;\n    CYTHON_UNUSED_VAR(closure);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    result = __Pyx_CyFunction_get_doc_locked(op);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    if (value == NULL) {\n        value = Py_None;\n    }\n    Py_INCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->func_doc, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)\n{\n    if (unlikely(op->func_name == NULL)) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n        op->func_name = PyObject_GetAttrString(op->func, \"__name__\");\n#else\n        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);\n#endif\n        if (unlikely(op->func_name == NULL))\n            return NULL;\n    }\n    Py_INCREF(op->func_name);\n    return op->func_name;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)\n{\n    PyObject *result = NULL;\n    CYTHON_UNUSED_VAR(context);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    result = __Pyx_CyFunction_get_name_locked(op);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    if (unlikely(value == NULL || !PyUnicode_Check(value))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"__name__ must be set to a string object\");\n        return -1;\n    }\n    Py_INCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->func_name, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    PyObject *result;\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    Py_INCREF(op->func_qualname);\n    result = op->func_qualname;\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    if (unlikely(value == NULL || !PyUnicode_Check(value))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"__qualname__ must be set to a string object\");\n        return -1;\n    }\n    Py_INCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->func_qualname, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000\nstatic PyObject *\n__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    if (unlikely(op->func_dict == NULL)) {\n        op->func_dict = PyDict_New();\n        if (unlikely(op->func_dict == NULL))\n            return NULL;\n    }\n    Py_INCREF(op->func_dict);\n    return op->func_dict;\n}\n#endif\nstatic PyObject *\n__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)\n{\n    CYTHON_UNUSED_VAR(context);\n    Py_INCREF(op->func_globals);\n    return op->func_globals;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)\n{\n    CYTHON_UNUSED_VAR(op);\n    CYTHON_UNUSED_VAR(context);\n    Py_INCREF(Py_None);\n    return Py_None;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)\n{\n    PyObject* result = (op->func_code) ? op->func_code : Py_None;\n    CYTHON_UNUSED_VAR(context);\n    Py_INCREF(result);\n    return result;\n}\nstatic int\n__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {\n    int result = 0;\n    PyObject *res = op->defaults_getter((PyObject *) op);\n    if (unlikely(!res))\n        return -1;\n    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);\n    Py_INCREF(op->defaults_tuple);\n    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);\n    Py_INCREF(op->defaults_kwdict);\n    #else\n    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);\n    if (unlikely(!op->defaults_tuple)) result = -1;\n    else {\n        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);\n        if (unlikely(!op->defaults_kwdict)) result = -1;\n    }\n    #endif\n    Py_DECREF(res);\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {\n    CYTHON_UNUSED_VAR(context);\n    if (!value) {\n        value = Py_None;\n    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"__defaults__ must be set to a tuple object\");\n        return -1;\n    }\n    PyErr_WarnEx(PyExc_RuntimeWarning, \"changes to cyfunction.__defaults__ will not \"\n                 \"currently affect the values used in function calls\", 1);\n    Py_INCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) {\n    PyObject* result = op->defaults_tuple;\n    if (unlikely(!result)) {\n        if (op->defaults_getter) {\n            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;\n            result = op->defaults_tuple;\n        } else {\n            result = Py_None;\n        }\n    }\n    Py_INCREF(result);\n    return result;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {\n    PyObject* result = NULL;\n    CYTHON_UNUSED_VAR(context);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    result = __Pyx_CyFunction_get_defaults_locked(op);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {\n    CYTHON_UNUSED_VAR(context);\n    if (!value) {\n        value = Py_None;\n    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"__kwdefaults__ must be set to a dict object\");\n        return -1;\n    }\n    PyErr_WarnEx(PyExc_RuntimeWarning, \"changes to cyfunction.__kwdefaults__ will not \"\n                 \"currently affect the values used in function calls\", 1);\n    Py_INCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) {\n    PyObject* result = op->defaults_kwdict;\n    if (unlikely(!result)) {\n        if (op->defaults_getter) {\n            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;\n            result = op->defaults_kwdict;\n        } else {\n            result = Py_None;\n        }\n    }\n    Py_INCREF(result);\n    return result;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {\n    PyObject* result;\n    CYTHON_UNUSED_VAR(context);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    result = __Pyx_CyFunction_get_kwdefaults_locked(op);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic int\n__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {\n    CYTHON_UNUSED_VAR(context);\n    if (!value || value == Py_None) {\n        value = NULL;\n    } else if (unlikely(!PyDict_Check(value))) {\n        PyErr_SetString(PyExc_TypeError,\n                        \"__annotations__ must be set to a dict object\");\n        return -1;\n    }\n    Py_XINCREF(value);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    __Pyx_Py_XDECREF_SET(op->func_annotations, value);\n    __Pyx_END_CRITICAL_SECTION();\n    return 0;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {\n    PyObject* result = op->func_annotations;\n    if (unlikely(!result)) {\n        result = PyDict_New();\n        if (unlikely(!result)) return NULL;\n        op->func_annotations = result;\n    }\n    Py_INCREF(result);\n    return result;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {\n    PyObject *result;\n    CYTHON_UNUSED_VAR(context);\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    result = __Pyx_CyFunction_get_annotations_locked(op);\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic PyObject *\n__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {\n    int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;\n    if (is_coroutine) {\n        PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;\n        fromlist = PyList_New(1);\n        if (unlikely(!fromlist)) return NULL;\n        Py_INCREF(marker);\n#if CYTHON_ASSUME_SAFE_MACROS\n        PyList_SET_ITEM(fromlist, 0, marker);\n#else\n        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {\n            Py_DECREF(marker);\n            Py_DECREF(fromlist);\n            return NULL;\n        }\n#endif\n        module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);\n        Py_DECREF(fromlist);\n        if (unlikely(!module)) goto ignore;\n        is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);\n        Py_DECREF(module);\n        if (likely(is_coroutine_value)) {\n            return is_coroutine_value;\n        }\nignore:\n        PyErr_Clear();\n    }\n    return __Pyx_PyBool_FromLong(is_coroutine);\n}\nstatic PyObject *\n__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {\n    PyObject *result;\n    CYTHON_UNUSED_VAR(context);\n    if (op->func_is_coroutine) {\n        return __Pyx_NewRef(op->func_is_coroutine);\n    }\n    result = __Pyx_CyFunction_get_is_coroutine_value(op);\n    if (unlikely(!result))\n        return NULL;\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    if (op->func_is_coroutine) {\n        Py_DECREF(result);\n        result = __Pyx_NewRef(op->func_is_coroutine);\n    } else {\n        op->func_is_coroutine = __Pyx_NewRef(result);\n    }\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);\n    if (!py_name) return;\n    PyErr_Format(PyExc_TypeError,\n        \"%.200S() %s (%\" CYTHON_FORMAT_SSIZE_T \"d given)\",\n        py_name, message, size);\n    Py_DECREF(py_name);\n#else\n    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;\n    PyErr_Format(PyExc_TypeError,\n        \"%.200s() %s (%\" CYTHON_FORMAT_SSIZE_T \"d given)\",\n        name, message, size);\n#endif\n}\nstatic void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);\n    if (!py_name) return;\n    PyErr_Format(PyExc_TypeError,\n        \"%.200S() %s\",\n        py_name, message);\n    Py_DECREF(py_name);\n#else\n    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;\n    PyErr_Format(PyExc_TypeError,\n        \"%.200s() %s\",\n        name, message);\n#endif\n}\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic PyObject *\n__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {\n    CYTHON_UNUSED_VAR(context);\n    return PyObject_GetAttrString(op->func, \"__module__\");\n}\nstatic int\n__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {\n    CYTHON_UNUSED_VAR(context);\n    return PyObject_SetAttrString(op->func, \"__module__\", value);\n}\n#endif\nstatic PyGetSetDef __pyx_CyFunction_getsets[] = {\n    {\"func_doc\", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},\n    {\"__doc__\",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},\n    {\"func_name\", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},\n    {\"__name__\", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},\n    {\"__qualname__\", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000\n    {\"func_dict\", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},\n    {\"__dict__\", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},\n#else\n    {\"func_dict\", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},\n    {\"__dict__\", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},\n#endif\n    {\"func_globals\", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},\n    {\"__globals__\", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},\n    {\"func_closure\", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},\n    {\"__closure__\", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},\n    {\"func_code\", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},\n    {\"__code__\", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},\n    {\"func_defaults\", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},\n    {\"__defaults__\", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},\n    {\"__kwdefaults__\", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},\n    {\"__annotations__\", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},\n    {\"_is_coroutine\", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},\n#if CYTHON_COMPILING_IN_LIMITED_API\n    {\"__module__\", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},\n#endif\n    {0, 0, 0, 0, 0}\n};\nstatic PyMemberDef __pyx_CyFunction_members[] = {\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    {\"__module__\", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},\n#endif\n#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API\n    {\"__dictoffset__\", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},\n#endif\n#if CYTHON_METH_FASTCALL\n#if CYTHON_COMPILING_IN_LIMITED_API\n    {\"__vectorcalloffset__\", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},\n#else\n    {\"__vectorcalloffset__\", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\n    {\"__weaklistoffset__\", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},\n#else\n    {\"__weaklistoffset__\", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},\n#endif\n#endif\n    {0, 0, 0,  0, 0}\n};\nstatic PyObject *\n__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)\n{\n    PyObject *result = NULL;\n    CYTHON_UNUSED_VAR(args);\n    __Pyx_BEGIN_CRITICAL_SECTION(m);\n    Py_INCREF(m->func_qualname);\n    result = m->func_qualname;\n    __Pyx_END_CRITICAL_SECTION();\n    return result;\n}\nstatic PyMethodDef __pyx_CyFunction_methods[] = {\n    {\"__reduce__\", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},\n    {0, 0, 0, 0}\n};\n#if CYTHON_COMPILING_IN_LIMITED_API\n#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)\n#else\n#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)\n#endif\nstatic PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,\n                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    PyCFunctionObject *cf = (PyCFunctionObject*) op;\n#endif\n    if (unlikely(op == NULL))\n        return NULL;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);\n    if (unlikely(!op->func)) return NULL;\n#endif\n    op->flags = flags;\n    __Pyx_CyFunction_weakreflist(op) = NULL;\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    cf->m_ml = ml;\n    cf->m_self = (PyObject *) op;\n#endif\n    Py_XINCREF(closure);\n    op->func_closure = closure;\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    Py_XINCREF(module);\n    cf->m_module = module;\n#endif\n#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API\n    op->func_dict = NULL;\n#endif\n    op->func_name = NULL;\n    Py_INCREF(qualname);\n    op->func_qualname = qualname;\n    op->func_doc = NULL;\n#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API\n    op->func_classobj = NULL;\n#else\n    ((PyCMethodObject*)op)->mm_class = NULL;\n#endif\n    op->func_globals = globals;\n    Py_INCREF(op->func_globals);\n    Py_XINCREF(code);\n    op->func_code = code;\n    op->defaults = NULL;\n    op->defaults_tuple = NULL;\n    op->defaults_kwdict = NULL;\n    op->defaults_getter = NULL;\n    op->func_annotations = NULL;\n    op->func_is_coroutine = NULL;\n#if CYTHON_METH_FASTCALL\n    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {\n    case METH_NOARGS:\n        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;\n        break;\n    case METH_O:\n        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;\n        break;\n    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:\n        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;\n        break;\n    case METH_FASTCALL | METH_KEYWORDS:\n        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;\n        break;\n    case METH_VARARGS | METH_KEYWORDS:\n        __Pyx_CyFunction_func_vectorcall(op) = NULL;\n        break;\n    default:\n        PyErr_SetString(PyExc_SystemError, \"Bad call flags for CyFunction\");\n        Py_DECREF(op);\n        return NULL;\n    }\n#endif\n    return (PyObject *) op;\n}\nstatic int\n__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)\n{\n    Py_CLEAR(m->func_closure);\n#if CYTHON_COMPILING_IN_LIMITED_API\n    Py_CLEAR(m->func);\n#else\n    Py_CLEAR(((PyCFunctionObject*)m)->m_module);\n#endif\n#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API\n    Py_CLEAR(m->func_dict);\n#elif PY_VERSION_HEX < 0x030d0000\n    _PyObject_ClearManagedDict((PyObject*)m);\n#else\n    PyObject_ClearManagedDict((PyObject*)m);\n#endif\n    Py_CLEAR(m->func_name);\n    Py_CLEAR(m->func_qualname);\n    Py_CLEAR(m->func_doc);\n    Py_CLEAR(m->func_globals);\n    Py_CLEAR(m->func_code);\n#if !CYTHON_COMPILING_IN_LIMITED_API\n#if PY_VERSION_HEX < 0x030900B1\n    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));\n#else\n    {\n        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;\n        ((PyCMethodObject *) (m))->mm_class = NULL;\n        Py_XDECREF(cls);\n    }\n#endif\n#endif\n    Py_CLEAR(m->defaults_tuple);\n    Py_CLEAR(m->defaults_kwdict);\n    Py_CLEAR(m->func_annotations);\n    Py_CLEAR(m->func_is_coroutine);\n    Py_CLEAR(m->defaults);\n    return 0;\n}\nstatic void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)\n{\n    if (__Pyx_CyFunction_weakreflist(m) != NULL)\n        PyObject_ClearWeakRefs((PyObject *) m);\n    __Pyx_CyFunction_clear(m);\n    __Pyx_PyHeapTypeObject_GC_Del(m);\n}\nstatic void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)\n{\n    PyObject_GC_UnTrack(m);\n    __Pyx__CyFunction_dealloc(m);\n}\nstatic int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)\n{\n    {\n        int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg);\n        if (e) return e;\n    }\n    Py_VISIT(m->func_closure);\n#if CYTHON_COMPILING_IN_LIMITED_API\n    Py_VISIT(m->func);\n#else\n    Py_VISIT(((PyCFunctionObject*)m)->m_module);\n#endif\n#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API\n    Py_VISIT(m->func_dict);\n#else\n    {\n        int e =\n#if PY_VERSION_HEX < 0x030d0000\n            _PyObject_VisitManagedDict\n#else\n            PyObject_VisitManagedDict\n#endif\n                ((PyObject*)m, visit, arg);\n        if (e != 0) return e;\n    }\n#endif\n    __Pyx_VISIT_CONST(m->func_name);\n    __Pyx_VISIT_CONST(m->func_qualname);\n    Py_VISIT(m->func_doc);\n    Py_VISIT(m->func_globals);\n    __Pyx_VISIT_CONST(m->func_code);\n#if !CYTHON_COMPILING_IN_LIMITED_API\n    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));\n#endif\n    Py_VISIT(m->defaults_tuple);\n    Py_VISIT(m->defaults_kwdict);\n    Py_VISIT(m->func_is_coroutine);\n    Py_VISIT(m->defaults);\n    return 0;\n}\nstatic PyObject*\n__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)\n{\n    PyObject *repr;\n    __Pyx_BEGIN_CRITICAL_SECTION(op);\n    repr = PyUnicode_FromFormat(\"<cyfunction %U at %p>\",\n                                op->func_qualname, (void *)op);\n    __Pyx_END_CRITICAL_SECTION();\n    return repr;\n}\nstatic PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;\n    PyCFunction meth;\n    int flags;\n    meth = PyCFunction_GetFunction(f);\n    if (unlikely(!meth)) return NULL;\n    flags = PyCFunction_GetFlags(f);\n    if (unlikely(flags < 0)) return NULL;\n#else\n    PyCFunctionObject* f = (PyCFunctionObject*)func;\n    PyCFunction meth = f->m_ml->ml_meth;\n    int flags = f->m_ml->ml_flags;\n#endif\n    Py_ssize_t size;\n    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {\n    case METH_VARARGS:\n        if (likely(kw == NULL || PyDict_Size(kw) == 0))\n            return (*meth)(self, arg);\n        break;\n    case METH_VARARGS | METH_KEYWORDS:\n        return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);\n    case METH_NOARGS:\n        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {\n#if CYTHON_ASSUME_SAFE_SIZE\n            size = PyTuple_GET_SIZE(arg);\n#else\n            size = PyTuple_Size(arg);\n            if (unlikely(size < 0)) return NULL;\n#endif\n            if (likely(size == 0))\n                return (*meth)(self, NULL);\n            __Pyx_CyFunction_raise_argument_count_error(\n                (__pyx_CyFunctionObject*)func,\n                \"takes no arguments\", size);\n            return NULL;\n        }\n        break;\n    case METH_O:\n        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {\n#if CYTHON_ASSUME_SAFE_SIZE\n            size = PyTuple_GET_SIZE(arg);\n#else\n            size = PyTuple_Size(arg);\n            if (unlikely(size < 0)) return NULL;\n#endif\n            if (likely(size == 1)) {\n                PyObject *result, *arg0;\n                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS\n                arg0 = PyTuple_GET_ITEM(arg, 0);\n                #else\n                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;\n                #endif\n                result = (*meth)(self, arg0);\n                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)\n                Py_DECREF(arg0);\n                #endif\n                return result;\n            }\n            __Pyx_CyFunction_raise_argument_count_error(\n                (__pyx_CyFunctionObject*)func,\n                \"takes exactly one argument\", size);\n            return NULL;\n        }\n        break;\n    default:\n        PyErr_SetString(PyExc_SystemError, \"Bad call flags for CyFunction\");\n        return NULL;\n    }\n    __Pyx_CyFunction_raise_type_error(\n        (__pyx_CyFunctionObject*)func, \"takes no keyword arguments\");\n    return NULL;\n}\nstatic CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {\n    PyObject *self, *result;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);\n    if (unlikely(!self) && PyErr_Occurred()) return NULL;\n#else\n    self = ((PyCFunctionObject*)func)->m_self;\n#endif\n    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);\n    return result;\n}\nstatic PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {\n    PyObject *result;\n    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;\n#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL\n     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);\n    if (vc) {\n#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE\n        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);\n#else\n        (void) &__Pyx_PyVectorcall_FastCallDict;\n        return PyVectorcall_Call(func, args, kw);\n#endif\n    }\n#endif\n    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {\n        Py_ssize_t argc;\n        PyObject *new_args;\n        PyObject *self;\n#if CYTHON_ASSUME_SAFE_SIZE\n        argc = PyTuple_GET_SIZE(args);\n#else\n        argc = PyTuple_Size(args);\n        if (unlikely(argc < 0)) return NULL;\n#endif\n        new_args = PyTuple_GetSlice(args, 1, argc);\n        if (unlikely(!new_args))\n            return NULL;\n        self = PyTuple_GetItem(args, 0);\n        if (unlikely(!self)) {\n            Py_DECREF(new_args);\n            PyErr_Format(PyExc_TypeError,\n                         \"unbound method %.200S() needs an argument\",\n                         cyfunc->func_qualname);\n            return NULL;\n        }\n        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);\n        Py_DECREF(new_args);\n    } else {\n        result = __Pyx_CyFunction_Call(func, args, kw);\n    }\n    return result;\n}\n#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL\nstatic CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)\n{\n    int ret = 0;\n    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {\n        if (unlikely(nargs < 1)) {\n            __Pyx_CyFunction_raise_type_error(\n                cyfunc, \"needs an argument\");\n            return -1;\n        }\n        ret = 1;\n    }\n    if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {\n        __Pyx_CyFunction_raise_type_error(\n            cyfunc, \"takes no keyword arguments\");\n        return -1;\n    }\n    return ret;\n}\nstatic PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)\n{\n    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;\n    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);\n    PyObject *self;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);\n    if (unlikely(!meth)) return NULL;\n#else\n    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;\n#endif\n    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {\n    case 1:\n        self = args[0];\n        args += 1;\n        nargs -= 1;\n        break;\n    case 0:\n#if CYTHON_COMPILING_IN_LIMITED_API\n        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);\n        if (unlikely(!self) && PyErr_Occurred()) return NULL;\n#else\n        self = ((PyCFunctionObject*)cyfunc)->m_self;\n#endif\n        break;\n    default:\n        return NULL;\n    }\n    if (unlikely(nargs != 0)) {\n        __Pyx_CyFunction_raise_argument_count_error(\n            cyfunc, \"takes no arguments\", nargs);\n        return NULL;\n    }\n    return meth(self, NULL);\n}\nstatic PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)\n{\n    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;\n    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);\n    PyObject *self;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);\n    if (unlikely(!meth)) return NULL;\n#else\n    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;\n#endif\n    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {\n    case 1:\n        self = args[0];\n        args += 1;\n        nargs -= 1;\n        break;\n    case 0:\n#if CYTHON_COMPILING_IN_LIMITED_API\n        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);\n        if (unlikely(!self) && PyErr_Occurred()) return NULL;\n#else\n        self = ((PyCFunctionObject*)cyfunc)->m_self;\n#endif\n        break;\n    default:\n        return NULL;\n    }\n    if (unlikely(nargs != 1)) {\n        __Pyx_CyFunction_raise_argument_count_error(\n            cyfunc, \"takes exactly one argument\", nargs);\n        return NULL;\n    }\n    return meth(self, args[0]);\n}\nstatic PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)\n{\n    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;\n    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);\n    PyObject *self;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);\n    if (unlikely(!meth)) return NULL;\n#else\n    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;\n#endif\n    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {\n    case 1:\n        self = args[0];\n        args += 1;\n        nargs -= 1;\n        break;\n    case 0:\n#if CYTHON_COMPILING_IN_LIMITED_API\n        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);\n        if (unlikely(!self) && PyErr_Occurred()) return NULL;\n#else\n        self = ((PyCFunctionObject*)cyfunc)->m_self;\n#endif\n        break;\n    default:\n        return NULL;\n    }\n    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);\n}\nstatic PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)\n{\n    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;\n    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);\n    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);\n    PyObject *self;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);\n    if (unlikely(!meth)) return NULL;\n#else\n    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;\n#endif\n    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {\n    case 1:\n        self = args[0];\n        args += 1;\n        nargs -= 1;\n        break;\n    case 0:\n#if CYTHON_COMPILING_IN_LIMITED_API\n        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);\n        if (unlikely(!self) && PyErr_Occurred()) return NULL;\n#else\n        self = ((PyCFunctionObject*)cyfunc)->m_self;\n#endif\n        break;\n    default:\n        return NULL;\n    }\n    #if PY_VERSION_HEX < 0x030e00A6\n    size_t nargs_value = (size_t) nargs;\n    #else\n    Py_ssize_t nargs_value = nargs;\n    #endif\n    return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);\n}\n#endif\nstatic PyType_Slot __pyx_CyFunctionType_slots[] = {\n    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},\n    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},\n    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},\n    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},\n    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},\n    {Py_tp_methods, (void *)__pyx_CyFunction_methods},\n    {Py_tp_members, (void *)__pyx_CyFunction_members},\n    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},\n    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},\n    {0, 0},\n};\nstatic PyType_Spec __pyx_CyFunctionType_spec = {\n    __PYX_TYPE_MODULE_PREFIX \"cython_function_or_method\",\n    sizeof(__pyx_CyFunctionObject),\n    0,\n#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR\n    Py_TPFLAGS_METHOD_DESCRIPTOR |\n#endif\n#if CYTHON_METH_FASTCALL\n#if defined(Py_TPFLAGS_HAVE_VECTORCALL)\n    Py_TPFLAGS_HAVE_VECTORCALL |\n#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)\n    _Py_TPFLAGS_HAVE_VECTORCALL |\n#endif\n#endif // CYTHON_METH_FASTCALL\n#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API\n    Py_TPFLAGS_MANAGED_DICT |\n#endif\n    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |\n    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,\n    __pyx_CyFunctionType_slots\n};\nstatic int __pyx_CyFunction_init(PyObject *module) {\n    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);\n    mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(\n        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);\n    if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {\n        return -1;\n    }\n    return 0;\n}\nstatic CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {\n    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;\n    m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);\n    if (unlikely(!m->defaults))\n        return NULL;\n    return m->defaults;\n}\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {\n    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;\n    m->defaults_tuple = tuple;\n    Py_INCREF(tuple);\n}\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {\n    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;\n    m->defaults_kwdict = dict;\n    Py_INCREF(dict);\n}\nstatic CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {\n    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;\n    m->func_annotations = dict;\n    Py_INCREF(dict);\n}\n\n/* CythonFunction */\nstatic PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,\n                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {\n    PyObject *op = __Pyx_CyFunction_Init(\n        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType),\n        ml, flags, qualname, closure, module, globals, code\n    );\n    if (likely(op)) {\n        PyObject_GC_Track(op);\n    }\n    return op;\n}\n\n/* Py3UpdateBases */\nstatic PyObject*\n__Pyx_PEP560_update_bases(PyObject *bases)\n{\n    Py_ssize_t i, j, size_bases;\n    PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL;\n#if CYTHON_ASSUME_SAFE_SIZE\n    size_bases = PyTuple_GET_SIZE(bases);\n#else\n    size_bases = PyTuple_Size(bases);\n    if (size_bases < 0) return NULL;\n#endif\n    for (i = 0; i < size_bases; i++) {\n#if CYTHON_AVOID_BORROWED_REFS\n        Py_CLEAR(base);\n#endif\n#if CYTHON_ASSUME_SAFE_MACROS\n        base = PyTuple_GET_ITEM(bases, i);\n#else\n        base = PyTuple_GetItem(bases, i);\n        if (!base) goto error;\n#endif\n#if CYTHON_AVOID_BORROWED_REFS\n        Py_INCREF(base);\n#endif\n        if (PyType_Check(base)) {\n            if (new_bases) {\n                if (PyList_Append(new_bases, base) < 0) {\n                    goto error;\n                }\n            }\n            continue;\n        }\n        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries);\n        if (!meth && PyErr_Occurred()) {\n            goto error;\n        }\n        if (!meth) {\n            if (new_bases) {\n                if (PyList_Append(new_bases, base) < 0) {\n                    goto error;\n                }\n            }\n            continue;\n        }\n        new_base = __Pyx_PyObject_CallOneArg(meth, bases);\n        Py_DECREF(meth);\n        if (!new_base) {\n            goto error;\n        }\n        if (!PyTuple_Check(new_base)) {\n            PyErr_SetString(PyExc_TypeError,\n                            \"__mro_entries__ must return a tuple\");\n            Py_DECREF(new_base);\n            goto error;\n        }\n        if (!new_bases) {\n            if (!(new_bases = PyList_New(i))) {\n                goto error;\n            }\n            for (j = 0; j < i; j++) {\n                PyObject *base_from_list;\n#if CYTHON_ASSUME_SAFE_MACROS\n                base_from_list = PyTuple_GET_ITEM(bases, j);\n                PyList_SET_ITEM(new_bases, j, base_from_list);\n                Py_INCREF(base_from_list);\n#else\n                base_from_list = PyTuple_GetItem(bases, j);\n                if (!base_from_list) goto error;\n                Py_INCREF(base_from_list);\n                if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error;\n#endif\n            }\n        }\n#if CYTHON_ASSUME_SAFE_SIZE\n        j = PyList_GET_SIZE(new_bases);\n#else\n        j = PyList_Size(new_bases);\n        if (j < 0) goto error;\n#endif\n        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {\n            goto error;\n        }\n        Py_DECREF(new_base);\n    }\n    if (!new_bases) {\n        Py_INCREF(bases);\n        return bases;\n    }\n    result = PyList_AsTuple(new_bases);\n    Py_DECREF(new_bases);\n#if CYTHON_AVOID_BORROWED_REFS\n    Py_XDECREF(base);\n#endif\n    return result;\nerror:\n    Py_XDECREF(new_bases);\n#if CYTHON_AVOID_BORROWED_REFS\n    Py_XDECREF(base);\n#endif\n    return NULL;\n}\n\n/* CalculateMetaclass */\nstatic PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {\n    Py_ssize_t i, nbases;\n#if CYTHON_ASSUME_SAFE_SIZE\n    nbases = PyTuple_GET_SIZE(bases);\n#else\n    nbases = PyTuple_Size(bases);\n    if (nbases < 0) return NULL;\n#endif\n    for (i=0; i < nbases; i++) {\n        PyTypeObject *tmptype;\n#if CYTHON_ASSUME_SAFE_MACROS\n        PyObject *tmp = PyTuple_GET_ITEM(bases, i);\n#else\n        PyObject *tmp = PyTuple_GetItem(bases, i);\n        if (!tmp) return NULL;\n#endif\n        tmptype = Py_TYPE(tmp);\n        if (!metaclass) {\n            metaclass = tmptype;\n            continue;\n        }\n        if (PyType_IsSubtype(metaclass, tmptype))\n            continue;\n        if (PyType_IsSubtype(tmptype, metaclass)) {\n            metaclass = tmptype;\n            continue;\n        }\n        PyErr_SetString(PyExc_TypeError,\n                        \"metaclass conflict: \"\n                        \"the metaclass of a derived class \"\n                        \"must be a (non-strict) subclass \"\n                        \"of the metaclasses of all its bases\");\n        return NULL;\n    }\n    if (!metaclass) {\n        metaclass = &PyType_Type;\n    }\n    Py_INCREF((PyObject*) metaclass);\n    return (PyObject*) metaclass;\n}\n\n/* PyObjectCall2Args (used by Py3ClassCreate) */\nstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {\n    PyObject *args[3] = {NULL, arg1, arg2};\n    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);\n}\n\n/* PyObjectLookupSpecial (used by Py3ClassCreate) */\n#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS\nstatic CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {\n    PyObject *res;\n    PyTypeObject *tp = Py_TYPE(obj);\n    res = _PyType_Lookup(tp, attr_name);\n    if (likely(res)) {\n        descrgetfunc f = Py_TYPE(res)->tp_descr_get;\n        if (!f) {\n            Py_INCREF(res);\n        } else {\n            res = f(res, obj, (PyObject *)tp);\n        }\n    } else if (with_error) {\n        PyErr_SetObject(PyExc_AttributeError, attr_name);\n    }\n    return res;\n}\n#endif\n\n/* Py3ClassCreate */\nstatic PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,\n                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {\n    PyObject *ns;\n    if (metaclass) {\n        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);\n        if (prep) {\n            PyObject *pargs[3] = {NULL, name, bases};\n            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);\n            Py_DECREF(prep);\n        } else {\n            if (unlikely(PyErr_Occurred()))\n                return NULL;\n            ns = PyDict_New();\n        }\n    } else {\n        ns = PyDict_New();\n    }\n    if (unlikely(!ns))\n        return NULL;\n    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;\n    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;\n    if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;\n    return ns;\nbad:\n    Py_DECREF(ns);\n    return NULL;\n}\nstatic PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,\n                                      PyObject *dict, PyObject *mkw,\n                                      int calculate_metaclass, int allow_py2_metaclass) {\n    PyObject *result;\n    PyObject *owned_metaclass = NULL;\n    PyObject *margs[4] = {NULL, name, bases, dict};\n    if (allow_py2_metaclass) {\n        owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);\n        if (owned_metaclass) {\n            metaclass = owned_metaclass;\n        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {\n            PyErr_Clear();\n        } else {\n            return NULL;\n        }\n    }\n    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {\n        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);\n        Py_XDECREF(owned_metaclass);\n        if (unlikely(!metaclass))\n            return NULL;\n        owned_metaclass = metaclass;\n    }\n    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);\n    Py_XDECREF(owned_metaclass);\n    return result;\n}\n\n/* ListPack */\nstatic PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...) {\n    va_list va;\n    PyObject *l = PyList_New(n);\n    va_start(va, n);\n    if (unlikely(!l)) goto end;\n    for (Py_ssize_t i=0; i<n; ++i) {\n        PyObject *arg = va_arg(va, PyObject*);\n        Py_INCREF(arg);\n        if (__Pyx_PyList_SET_ITEM(l, i, arg) != (0)) {\n            Py_CLEAR(l);\n            goto end;\n        }\n    }\n    end:\n    va_end(va);\n    return l;\n}\n\n/* ImportImpl (used by Import) */\nstatic int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {\n    PyObject *imported_module = PyImport_GetModule(qualname);\n    if (unlikely(!imported_module)) {\n        *module = NULL;\n        if (PyErr_Occurred()) {\n            return -1;\n        }\n        return 0;\n    }\n    *module = imported_module;\n    return 1;\n}\nstatic int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {\n    PyObject *imported_module;\n    PyObject *top_level_package_name;\n    Py_ssize_t i;\n    int status, module_found;\n    Py_ssize_t dot_index;\n    module_found = __Pyx__Import_GetModule(qualname, &imported_module);\n    if (unlikely(!module_found || module_found == -1)) {\n        *module = NULL;\n        return module_found;\n    }\n    if (imported_names) {\n        for (i = 0; i < len_imported_names; i++) {\n            PyObject *imported_name = imported_names[i];\n#if __PYX_LIMITED_VERSION_HEX < 0x030d0000\n            int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);\n#else\n            int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);\n            if (unlikely(has_imported_attribute == -1)) goto error;\n#endif\n            if (!has_imported_attribute) {\n                goto not_found;\n            }\n        }\n        *module = imported_module;\n        return 1;\n    }\n    dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);\n    if (dot_index == -1) {\n        *module = imported_module;\n        return 1;\n    }\n    if (unlikely(dot_index == -2)) goto error;\n    top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);\n    if (unlikely(!top_level_package_name)) goto error;\n    Py_DECREF(imported_module);\n    status = __Pyx__Import_GetModule(top_level_package_name, module);\n    Py_DECREF(top_level_package_name);\n    return status;\nerror:\n    Py_DECREF(imported_module);\n    *module = NULL;\n    return -1;\nnot_found:\n    Py_DECREF(imported_module);\n    *module = NULL;\n    return 0;\n}\nstatic PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {\n    PyObject *module = 0;\n    PyObject *empty_dict = 0;\n    PyObject *from_list = 0;\n    int module_found;\n    if (!qualname) {\n        qualname = name;\n    }\n    module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);\n    if (likely(module_found == 1)) {\n        return module;\n    } else if (unlikely(module_found == -1)) {\n        return NULL;\n    }\n    empty_dict = PyDict_New();\n    if (unlikely(!empty_dict))\n        goto bad;\n    if (imported_names) {\n#if CYTHON_COMPILING_IN_CPYTHON\n        from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);\n        if (unlikely(!from_list))\n            goto bad;\n#else\n        from_list = PyList_New(len_imported_names);\n        if (unlikely(!from_list)) goto bad;\n        for (Py_ssize_t i=0; i<len_imported_names; ++i) {\n            if (PyList_SetItem(from_list, i, __Pyx_NewRef(imported_names[i])) < 0) goto bad;\n        }\n#endif\n    }\n    if (level == -1) {\n        const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');\n        if (package_sep != (0)) {\n            module = PyImport_ImportModuleLevelObject(\n                name, moddict, empty_dict, from_list, 1);\n            if (unlikely(!module)) {\n                if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))\n                    goto bad;\n                PyErr_Clear();\n            }\n        }\n        level = 0;\n    }\n    if (!module) {\n        module = PyImport_ImportModuleLevelObject(\n            name, moddict, empty_dict, from_list, level);\n    }\nbad:\n    Py_XDECREF(from_list);\n    Py_XDECREF(empty_dict);\n    return module;\n}\n\n/* Import */\nstatic PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {\n    return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);\n}\n\n/* ImportFrom */\nstatic PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {\n    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);\n    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {\n        const char* module_name_str = 0;\n        PyObject* module_name = 0;\n        PyObject* module_dot = 0;\n        PyObject* full_name = 0;\n        PyErr_Clear();\n        module_name_str = PyModule_GetName(module);\n        if (unlikely(!module_name_str)) { goto modbad; }\n        module_name = PyUnicode_FromString(module_name_str);\n        if (unlikely(!module_name)) { goto modbad; }\n        module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__14);\n        if (unlikely(!module_dot)) { goto modbad; }\n        full_name = PyUnicode_Concat(module_dot, name);\n        if (unlikely(!full_name)) { goto modbad; }\n        #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\\\n                CYTHON_COMPILING_IN_GRAAL\n        {\n            PyObject *modules = PyImport_GetModuleDict();\n            if (unlikely(!modules))\n                goto modbad;\n            value = PyObject_GetItem(modules, full_name);\n        }\n        #else\n        value = PyImport_GetModule(full_name);\n        #endif\n      modbad:\n        Py_XDECREF(full_name);\n        Py_XDECREF(module_dot);\n        Py_XDECREF(module_name);\n    }\n    if (unlikely(!value)) {\n        PyErr_Format(PyExc_ImportError, \"cannot import name %S\", name);\n    }\n    return value;\n}\n\n/* PyObjectCallMethod1 (used by append) */\n#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))\nstatic PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {\n    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);\n    Py_DECREF(method);\n    return result;\n}\n#endif\nstatic PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {\n#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))\n    PyObject *args[2] = {obj, arg};\n    (void) __Pyx_PyObject_CallOneArg;\n    (void) __Pyx_PyObject_Call2Args;\n    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);\n#else\n    PyObject *method = NULL, *result;\n    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);\n    if (likely(is_method)) {\n        result = __Pyx_PyObject_Call2Args(method, obj, arg);\n        Py_DECREF(method);\n        return result;\n    }\n    if (unlikely(!method)) return NULL;\n    return __Pyx__PyObject_CallMethod1(method, arg);\n#endif\n}\n\n/* append */\nstatic CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {\n    if (likely(PyList_CheckExact(L))) {\n        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;\n    } else {\n        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_mstate_global->__pyx_n_u_append, x);\n        if (unlikely(!retval))\n            return -1;\n        Py_DECREF(retval);\n    }\n    return 0;\n}\n\n/* CLineInTraceback (used by AddTraceback) */\n#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000\n#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))\n#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);\n#else\nPyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {\n    PyObject **dict_ptr = _PyObject_GetDictPtr(o);\n    return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;\n}\n#endif\nstatic int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {\n    PyObject *use_cline = NULL;\n    PyObject *ptype, *pvalue, *ptraceback;\n    PyObject *cython_runtime_dict;\n    CYTHON_MAYBE_UNUSED_VAR(tstate);\n    if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {\n        return c_line;\n    }\n    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);\n    cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);\n    if (likely(cython_runtime_dict)) {\n        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(\n            use_cline, cython_runtime_dict,\n            __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))\n    }\n    if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {\n        c_line = 0;\n    }\n    Py_XDECREF(use_cline);\n    Py_XDECREF(cython_runtime_dict);\n    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);\n    return c_line;\n}\n#endif\n\n/* CodeObjectCache (used by AddTraceback) */\nstatic int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {\n    int start = 0, mid = 0, end = count - 1;\n    if (end >= 0 && code_line > entries[end].code_line) {\n        return count;\n    }\n    while (start < end) {\n        mid = start + (end - start) / 2;\n        if (code_line < entries[mid].code_line) {\n            end = mid;\n        } else if (code_line > entries[mid].code_line) {\n             start = mid + 1;\n        } else {\n            return mid;\n        }\n    }\n    if (code_line <= entries[mid].code_line) {\n        return mid;\n    } else {\n        return mid + 1;\n    }\n}\nstatic __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {\n    __Pyx_CachedCodeObjectType* code_object;\n    int pos;\n    if (unlikely(!code_line) || unlikely(!code_cache->entries)) {\n        return NULL;\n    }\n    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);\n    if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {\n        return NULL;\n    }\n    code_object = code_cache->entries[pos].code_object;\n    Py_INCREF(code_object);\n    return code_object;\n}\nstatic __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS\n    (void)__pyx__find_code_object;\n    return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.\n#else\n    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);\n    if (old_count < 0) {\n        __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);\n        return NULL;\n    }\n#endif\n    __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);\n#endif\n    return result;\n#endif\n}\nstatic void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)\n{\n    int pos, i;\n    __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;\n    if (unlikely(!code_line)) {\n        return;\n    }\n    if (unlikely(!entries)) {\n        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));\n        if (likely(entries)) {\n            code_cache->entries = entries;\n            code_cache->max_count = 64;\n            code_cache->count = 1;\n            entries[0].code_line = code_line;\n            entries[0].code_object = code_object;\n            Py_INCREF(code_object);\n        }\n        return;\n    }\n    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);\n    if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {\n        __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;\n        entries[pos].code_object = code_object;\n        Py_INCREF(code_object);\n        Py_DECREF(tmp);\n        return;\n    }\n    if (code_cache->count == code_cache->max_count) {\n        int new_max = code_cache->max_count + 64;\n        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(\n            code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));\n        if (unlikely(!entries)) {\n            return;\n        }\n        code_cache->entries = entries;\n        code_cache->max_count = new_max;\n    }\n    for (i=code_cache->count; i>pos; i--) {\n        entries[i] = entries[i-1];\n    }\n    entries[pos].code_line = code_line;\n    entries[pos].code_object = code_object;\n    code_cache->count++;\n    Py_INCREF(code_object);\n}\nstatic void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS\n    (void)__pyx__insert_code_object;\n    return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.\n#else\n    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    __pyx_nonatomic_int_type expected = 0;\n    if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {\n        return;\n    }\n#endif\n    __pyx__insert_code_object(code_cache, code_line, code_object);\n#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING\n    __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);\n#endif\n#endif\n}\n\n/* AddTraceback */\n#include \"compile.h\"\n#include \"frameobject.h\"\n#include \"traceback.h\"\n#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)\n  #ifndef Py_BUILD_CORE\n    #define Py_BUILD_CORE 1\n  #endif\n  #include \"internal/pycore_frame.h\"\n#endif\n#if CYTHON_COMPILING_IN_LIMITED_API\nstatic PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,\n                                                       PyObject *firstlineno, PyObject *name) {\n    PyObject *replace = NULL;\n    if (unlikely(PyDict_SetItemString(scratch_dict, \"co_firstlineno\", firstlineno))) return NULL;\n    if (unlikely(PyDict_SetItemString(scratch_dict, \"co_name\", name))) return NULL;\n    replace = PyObject_GetAttrString(code, \"replace\");\n    if (likely(replace)) {\n        PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);\n        Py_DECREF(replace);\n        return result;\n    }\n    PyErr_Clear();\n    return NULL;\n}\nstatic void __Pyx_AddTraceback(const char *funcname, int c_line,\n                               int py_line, const char *filename) {\n    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;\n    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;\n    PyObject *exc_type, *exc_value, *exc_traceback;\n    int success = 0;\n    if (c_line) {\n        c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);\n    }\n    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);\n    code_object = __pyx_find_code_object(c_line ? -c_line : py_line);\n    if (!code_object) {\n        code_object = Py_CompileString(\"_getframe()\", filename, Py_eval_input);\n        if (unlikely(!code_object)) goto bad;\n        py_py_line = PyLong_FromLong(py_line);\n        if (unlikely(!py_py_line)) goto bad;\n        if (c_line) {\n            py_funcname = PyUnicode_FromFormat( \"%s (%s:%d)\", funcname, __pyx_cfilenm, c_line);\n        } else {\n            py_funcname = PyUnicode_FromString(funcname);\n        }\n        if (unlikely(!py_funcname)) goto bad;\n        dict = PyDict_New();\n        if (unlikely(!dict)) goto bad;\n        {\n            PyObject *old_code_object = code_object;\n            code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);\n            Py_DECREF(old_code_object);\n        }\n        if (unlikely(!code_object)) goto bad;\n        __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);\n    } else {\n        dict = PyDict_New();\n    }\n    getframe = PySys_GetObject(\"_getframe\");\n    if (unlikely(!getframe)) goto bad;\n    if (unlikely(PyDict_SetItemString(dict, \"_getframe\", getframe))) goto bad;\n    frame = PyEval_EvalCode(code_object, dict, dict);\n    if (unlikely(!frame) || frame == Py_None) goto bad;\n    success = 1;\n  bad:\n    PyErr_Restore(exc_type, exc_value, exc_traceback);\n    Py_XDECREF(code_object);\n    Py_XDECREF(py_py_line);\n    Py_XDECREF(py_funcname);\n    Py_XDECREF(dict);\n    Py_XDECREF(replace);\n    if (success) {\n        PyTraceBack_Here(\n            (struct _frame*)frame);\n    }\n    Py_XDECREF(frame);\n}\n#else\nstatic PyCodeObject* __Pyx_CreateCodeObjectForTraceback(\n            const char *funcname, int c_line,\n            int py_line, const char *filename) {\n    PyCodeObject *py_code = NULL;\n    PyObject *py_funcname = NULL;\n    if (c_line) {\n        py_funcname = PyUnicode_FromFormat( \"%s (%s:%d)\", funcname, __pyx_cfilenm, c_line);\n        if (!py_funcname) goto bad;\n        funcname = PyUnicode_AsUTF8(py_funcname);\n        if (!funcname) goto bad;\n    }\n    py_code = PyCode_NewEmpty(filename, funcname, py_line);\n    Py_XDECREF(py_funcname);\n    return py_code;\nbad:\n    Py_XDECREF(py_funcname);\n    return NULL;\n}\nstatic void __Pyx_AddTraceback(const char *funcname, int c_line,\n                               int py_line, const char *filename) {\n    PyCodeObject *py_code = 0;\n    PyFrameObject *py_frame = 0;\n    PyThreadState *tstate = __Pyx_PyThreadState_Current;\n    PyObject *ptype, *pvalue, *ptraceback;\n    if (c_line) {\n        c_line = __Pyx_CLineForTraceback(tstate, c_line);\n    }\n    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);\n    if (!py_code) {\n        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);\n        py_code = __Pyx_CreateCodeObjectForTraceback(\n            funcname, c_line, py_line, filename);\n        if (!py_code) {\n            /* If the code object creation fails, then we should clear the\n               fetched exception references and propagate the new exception */\n            Py_XDECREF(ptype);\n            Py_XDECREF(pvalue);\n            Py_XDECREF(ptraceback);\n            goto bad;\n        }\n        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);\n        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);\n    }\n    py_frame = PyFrame_New(\n        tstate,            /*PyThreadState *tstate,*/\n        py_code,           /*PyCodeObject *code,*/\n        __pyx_mstate_global->__pyx_d,    /*PyObject *globals,*/\n        0                  /*PyObject *locals*/\n    );\n    if (!py_frame) goto bad;\n    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);\n    PyTraceBack_Here(py_frame);\nbad:\n    Py_XDECREF(py_code);\n    Py_XDECREF(py_frame);\n}\n#endif\n\n/* CIntFromPyVerify */\n#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\\\n    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)\n#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\\\n    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)\n#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\\\n    {\\\n        func_type value = func_value;\\\n        if (sizeof(target_type) < sizeof(func_type)) {\\\n            if (unlikely(value != (func_type) (target_type) value)) {\\\n                func_type zero = 0;\\\n                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\\\n                    return (target_type) -1;\\\n                if (is_unsigned && unlikely(value < zero))\\\n                    goto raise_neg_overflow;\\\n                else\\\n                    goto raise_overflow;\\\n            }\\\n        }\\\n        return (target_type) value;\\\n    }\n\n/* Declarations */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {\n      return ::std::complex< float >(x, y);\n    }\n  #else\n    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {\n      return x + y*(__pyx_t_float_complex)_Complex_I;\n    }\n  #endif\n#else\n    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {\n      __pyx_t_float_complex z;\n      z.real = x;\n      z.imag = y;\n      return z;\n    }\n#endif\n\n/* Arithmetic */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n       return (a.real == b.real) && (a.imag == b.imag);\n    }\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n        __pyx_t_float_complex z;\n        z.real = a.real + b.real;\n        z.imag = a.imag + b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n        __pyx_t_float_complex z;\n        z.real = a.real - b.real;\n        z.imag = a.imag - b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n        __pyx_t_float_complex z;\n        z.real = a.real * b.real - a.imag * b.imag;\n        z.imag = a.real * b.imag + a.imag * b.real;\n        return z;\n    }\n    #if 1\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else if (fabsf(b.real) >= fabsf(b.imag)) {\n            if (b.real == 0 && b.imag == 0) {\n                return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);\n            } else {\n                float r = b.imag / b.real;\n                float s = (float)(1.0) / (b.real + b.imag * r);\n                return __pyx_t_float_complex_from_parts(\n                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);\n            }\n        } else {\n            float r = b.real / b.imag;\n            float s = (float)(1.0) / (b.imag + b.real * r);\n            return __pyx_t_float_complex_from_parts(\n                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);\n        }\n    }\n    #else\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else {\n            float denom = b.real * b.real + b.imag * b.imag;\n            return __pyx_t_float_complex_from_parts(\n                (a.real * b.real + a.imag * b.imag) / denom,\n                (a.imag * b.real - a.real * b.imag) / denom);\n        }\n    }\n    #endif\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {\n        __pyx_t_float_complex z;\n        z.real = -a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {\n       return (a.real == 0) && (a.imag == 0);\n    }\n    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {\n        __pyx_t_float_complex z;\n        z.real =  a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    #if 1\n        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {\n          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)\n            return sqrtf(z.real*z.real + z.imag*z.imag);\n          #else\n            return hypotf(z.real, z.imag);\n          #endif\n        }\n        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {\n            __pyx_t_float_complex z;\n            float r, lnr, theta, z_r, z_theta;\n            if (b.imag == 0 && b.real == (int)b.real) {\n                if (b.real < 0) {\n                    float denom = a.real * a.real + a.imag * a.imag;\n                    a.real = a.real / denom;\n                    a.imag = -a.imag / denom;\n                    b.real = -b.real;\n                }\n                switch ((int)b.real) {\n                    case 0:\n                        z.real = 1;\n                        z.imag = 0;\n                        return z;\n                    case 1:\n                        return a;\n                    case 2:\n                        return __Pyx_c_prod_float(a, a);\n                    case 3:\n                        z = __Pyx_c_prod_float(a, a);\n                        return __Pyx_c_prod_float(z, a);\n                    case 4:\n                        z = __Pyx_c_prod_float(a, a);\n                        return __Pyx_c_prod_float(z, z);\n                }\n            }\n            if (a.imag == 0) {\n                if (a.real == 0) {\n                    return a;\n                } else if ((b.imag == 0) && (a.real >= 0)) {\n                    z.real = powf(a.real, b.real);\n                    z.imag = 0;\n                    return z;\n                } else if (a.real > 0) {\n                    r = a.real;\n                    theta = 0;\n                } else {\n                    r = -a.real;\n                    theta = atan2f(0.0, -1.0);\n                }\n            } else {\n                r = __Pyx_c_abs_float(a);\n                theta = atan2f(a.imag, a.real);\n            }\n            lnr = logf(r);\n            z_r = expf(lnr * b.real - theta * b.imag);\n            z_theta = theta * b.real + lnr * b.imag;\n            z.real = z_r * cosf(z_theta);\n            z.imag = z_r * sinf(z_theta);\n            return z;\n        }\n    #endif\n#endif\n\n/* Declarations */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {\n      return ::std::complex< double >(x, y);\n    }\n  #else\n    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {\n      return x + y*(__pyx_t_double_complex)_Complex_I;\n    }\n  #endif\n#else\n    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {\n      __pyx_t_double_complex z;\n      z.real = x;\n      z.imag = y;\n      return z;\n    }\n#endif\n\n/* Arithmetic */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n       return (a.real == b.real) && (a.imag == b.imag);\n    }\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n        __pyx_t_double_complex z;\n        z.real = a.real + b.real;\n        z.imag = a.imag + b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n        __pyx_t_double_complex z;\n        z.real = a.real - b.real;\n        z.imag = a.imag - b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n        __pyx_t_double_complex z;\n        z.real = a.real * b.real - a.imag * b.imag;\n        z.imag = a.real * b.imag + a.imag * b.real;\n        return z;\n    }\n    #if 1\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else if (fabs(b.real) >= fabs(b.imag)) {\n            if (b.real == 0 && b.imag == 0) {\n                return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);\n            } else {\n                double r = b.imag / b.real;\n                double s = (double)(1.0) / (b.real + b.imag * r);\n                return __pyx_t_double_complex_from_parts(\n                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);\n            }\n        } else {\n            double r = b.real / b.imag;\n            double s = (double)(1.0) / (b.imag + b.real * r);\n            return __pyx_t_double_complex_from_parts(\n                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);\n        }\n    }\n    #else\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else {\n            double denom = b.real * b.real + b.imag * b.imag;\n            return __pyx_t_double_complex_from_parts(\n                (a.real * b.real + a.imag * b.imag) / denom,\n                (a.imag * b.real - a.real * b.imag) / denom);\n        }\n    }\n    #endif\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {\n        __pyx_t_double_complex z;\n        z.real = -a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {\n       return (a.real == 0) && (a.imag == 0);\n    }\n    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {\n        __pyx_t_double_complex z;\n        z.real =  a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    #if 1\n        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {\n          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)\n            return sqrt(z.real*z.real + z.imag*z.imag);\n          #else\n            return hypot(z.real, z.imag);\n          #endif\n        }\n        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {\n            __pyx_t_double_complex z;\n            double r, lnr, theta, z_r, z_theta;\n            if (b.imag == 0 && b.real == (int)b.real) {\n                if (b.real < 0) {\n                    double denom = a.real * a.real + a.imag * a.imag;\n                    a.real = a.real / denom;\n                    a.imag = -a.imag / denom;\n                    b.real = -b.real;\n                }\n                switch ((int)b.real) {\n                    case 0:\n                        z.real = 1;\n                        z.imag = 0;\n                        return z;\n                    case 1:\n                        return a;\n                    case 2:\n                        return __Pyx_c_prod_double(a, a);\n                    case 3:\n                        z = __Pyx_c_prod_double(a, a);\n                        return __Pyx_c_prod_double(z, a);\n                    case 4:\n                        z = __Pyx_c_prod_double(a, a);\n                        return __Pyx_c_prod_double(z, z);\n                }\n            }\n            if (a.imag == 0) {\n                if (a.real == 0) {\n                    return a;\n                } else if ((b.imag == 0) && (a.real >= 0)) {\n                    z.real = pow(a.real, b.real);\n                    z.imag = 0;\n                    return z;\n                } else if (a.real > 0) {\n                    r = a.real;\n                    theta = 0;\n                } else {\n                    r = -a.real;\n                    theta = atan2(0.0, -1.0);\n                }\n            } else {\n                r = __Pyx_c_abs_double(a);\n                theta = atan2(a.imag, a.real);\n            }\n            lnr = log(r);\n            z_r = exp(lnr * b.real - theta * b.imag);\n            z_theta = theta * b.real + lnr * b.imag;\n            z.real = z_r * cos(z_theta);\n            z.imag = z_r * sin(z_theta);\n            return z;\n        }\n    #endif\n#endif\n\n/* Declarations */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n  #ifdef __cplusplus\n    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {\n      return ::std::complex< long double >(x, y);\n    }\n  #else\n    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {\n      return x + y*(__pyx_t_long_double_complex)_Complex_I;\n    }\n  #endif\n#else\n    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {\n      __pyx_t_long_double_complex z;\n      z.real = x;\n      z.imag = y;\n      return z;\n    }\n#endif\n\n/* Arithmetic */\n#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)\n#else\n    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n       return (a.real == b.real) && (a.imag == b.imag);\n    }\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n        __pyx_t_long_double_complex z;\n        z.real = a.real + b.real;\n        z.imag = a.imag + b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n        __pyx_t_long_double_complex z;\n        z.real = a.real - b.real;\n        z.imag = a.imag - b.imag;\n        return z;\n    }\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n        __pyx_t_long_double_complex z;\n        z.real = a.real * b.real - a.imag * b.imag;\n        z.imag = a.real * b.imag + a.imag * b.real;\n        return z;\n    }\n    #if 1\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else if (fabsl(b.real) >= fabsl(b.imag)) {\n            if (b.real == 0 && b.imag == 0) {\n                return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);\n            } else {\n                long double r = b.imag / b.real;\n                long double s = (long double)(1.0) / (b.real + b.imag * r);\n                return __pyx_t_long_double_complex_from_parts(\n                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);\n            }\n        } else {\n            long double r = b.real / b.imag;\n            long double s = (long double)(1.0) / (b.imag + b.real * r);\n            return __pyx_t_long_double_complex_from_parts(\n                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);\n        }\n    }\n    #else\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n        if (b.imag == 0) {\n            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);\n        } else {\n            long double denom = b.real * b.real + b.imag * b.imag;\n            return __pyx_t_long_double_complex_from_parts(\n                (a.real * b.real + a.imag * b.imag) / denom,\n                (a.imag * b.real - a.real * b.imag) / denom);\n        }\n    }\n    #endif\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {\n        __pyx_t_long_double_complex z;\n        z.real = -a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {\n       return (a.real == 0) && (a.imag == 0);\n    }\n    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {\n        __pyx_t_long_double_complex z;\n        z.real =  a.real;\n        z.imag = -a.imag;\n        return z;\n    }\n    #if 1\n        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {\n          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)\n            return sqrtl(z.real*z.real + z.imag*z.imag);\n          #else\n            return hypotl(z.real, z.imag);\n          #endif\n        }\n        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {\n            __pyx_t_long_double_complex z;\n            long double r, lnr, theta, z_r, z_theta;\n            if (b.imag == 0 && b.real == (int)b.real) {\n                if (b.real < 0) {\n                    long double denom = a.real * a.real + a.imag * a.imag;\n                    a.real = a.real / denom;\n                    a.imag = -a.imag / denom;\n                    b.real = -b.real;\n                }\n                switch ((int)b.real) {\n                    case 0:\n                        z.real = 1;\n                        z.imag = 0;\n                        return z;\n                    case 1:\n                        return a;\n                    case 2:\n                        return __Pyx_c_prod_long__double(a, a);\n                    case 3:\n                        z = __Pyx_c_prod_long__double(a, a);\n                        return __Pyx_c_prod_long__double(z, a);\n                    case 4:\n                        z = __Pyx_c_prod_long__double(a, a);\n                        return __Pyx_c_prod_long__double(z, z);\n                }\n            }\n            if (a.imag == 0) {\n                if (a.real == 0) {\n                    return a;\n                } else if ((b.imag == 0) && (a.real >= 0)) {\n                    z.real = powl(a.real, b.real);\n                    z.imag = 0;\n                    return z;\n                } else if (a.real > 0) {\n                    r = a.real;\n                    theta = 0;\n                } else {\n                    r = -a.real;\n                    theta = atan2l(0.0, -1.0);\n                }\n            } else {\n                r = __Pyx_c_abs_long__double(a);\n                theta = atan2l(a.imag, a.real);\n            }\n            lnr = logl(r);\n            z_r = expl(lnr * b.real - theta * b.imag);\n            z_theta = theta * b.real + lnr * b.imag;\n            z.real = z_r * cosl(z_theta);\n            z.imag = z_r * sinl(z_theta);\n            return z;\n        }\n    #endif\n#endif\n\n/* CIntFromPy */\nstatic CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_RetCode neg_one = (TA_RetCode) -1, const_zero = (TA_RetCode) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        TA_RetCode val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (TA_RetCode) -1;\n        val = __Pyx_PyLong_As_TA_RetCode(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) >= 2 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) >= 3 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) >= 4 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (TA_RetCode) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(TA_RetCode) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(TA_RetCode) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(TA_RetCode) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((TA_RetCode)-1)*(((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_RetCode) ((((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((TA_RetCode)-1)*(((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_RetCode) ((((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_RetCode) (((TA_RetCode)-1)*(((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_RetCode) ((((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(TA_RetCode) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, long, PyLong_AsLong(x))\n        } else if ((sizeof(TA_RetCode) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        TA_RetCode val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (TA_RetCode) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (TA_RetCode) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (TA_RetCode) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (TA_RetCode) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(TA_RetCode) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((TA_RetCode) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(TA_RetCode) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((TA_RetCode) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((TA_RetCode) 1) << (sizeof(TA_RetCode) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (TA_RetCode) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to TA_RetCode\");\n    return (TA_RetCode) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to TA_RetCode\");\n    return (TA_RetCode) -1;\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const int neg_one = (int) -1, const_zero = (int) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        int val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (int) -1;\n        val = __Pyx_PyLong_As_int(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {\n                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {\n                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {\n                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (int) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(int) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {\n                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {\n                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {\n                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {\n                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {\n                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {\n                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(int) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))\n        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        int val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (int) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (int) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (int) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (int) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((int) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((int) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (int) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to int\");\n    return (int) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to int\");\n    return (int) -1;\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const int neg_one = (int) -1, const_zero = (int) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(int) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(int) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(int) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(int),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE TA_FuncUnstId __Pyx_PyLong_As_TA_FuncUnstId(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_FuncUnstId neg_one = (TA_FuncUnstId) -1, const_zero = (TA_FuncUnstId) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        TA_FuncUnstId val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (TA_FuncUnstId) -1;\n        val = __Pyx_PyLong_As_TA_FuncUnstId(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) >= 2 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) >= 3 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) >= 4 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (TA_FuncUnstId) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(TA_FuncUnstId) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) ((((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) ((((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_FuncUnstId) ((((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(TA_FuncUnstId) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, long, PyLong_AsLong(x))\n        } else if ((sizeof(TA_FuncUnstId) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        TA_FuncUnstId val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (TA_FuncUnstId) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (TA_FuncUnstId) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (TA_FuncUnstId) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (TA_FuncUnstId) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(TA_FuncUnstId) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((TA_FuncUnstId) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(TA_FuncUnstId) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((TA_FuncUnstId) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((TA_FuncUnstId) 1) << (sizeof(TA_FuncUnstId) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (TA_FuncUnstId) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to TA_FuncUnstId\");\n    return (TA_FuncUnstId) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to TA_FuncUnstId\");\n    return (TA_FuncUnstId) -1;\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        unsigned int val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (unsigned int) -1;\n        val = __Pyx_PyLong_As_unsigned_int(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) {\n                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) {\n                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) {\n                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (unsigned int) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(unsigned int) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {\n                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {\n                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {\n                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {\n                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {\n                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {\n                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(unsigned int) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))\n        } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        unsigned int val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (unsigned int) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (unsigned int) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (unsigned int) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (unsigned int) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((unsigned int) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((unsigned int) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (unsigned int) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to unsigned int\");\n    return (unsigned int) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to unsigned int\");\n    return (unsigned int) -1;\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(unsigned int) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(unsigned int) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE TA_Compatibility __Pyx_PyLong_As_TA_Compatibility(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_Compatibility neg_one = (TA_Compatibility) -1, const_zero = (TA_Compatibility) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        TA_Compatibility val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (TA_Compatibility) -1;\n        val = __Pyx_PyLong_As_TA_Compatibility(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) >= 2 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) >= 3 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) >= 4 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (TA_Compatibility) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(TA_Compatibility) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(TA_Compatibility) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(TA_Compatibility) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((TA_Compatibility)-1)*(((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) ((((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) ((((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_Compatibility) ((((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(TA_Compatibility) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, long, PyLong_AsLong(x))\n        } else if ((sizeof(TA_Compatibility) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        TA_Compatibility val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (TA_Compatibility) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (TA_Compatibility) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (TA_Compatibility) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (TA_Compatibility) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(TA_Compatibility) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((TA_Compatibility) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(TA_Compatibility) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((TA_Compatibility) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((TA_Compatibility) 1) << (sizeof(TA_Compatibility) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (TA_Compatibility) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to TA_Compatibility\");\n    return (TA_Compatibility) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to TA_Compatibility\");\n    return (TA_Compatibility) -1;\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE TA_CandleSettingType __Pyx_PyLong_As_TA_CandleSettingType(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_CandleSettingType neg_one = (TA_CandleSettingType) -1, const_zero = (TA_CandleSettingType) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        TA_CandleSettingType val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (TA_CandleSettingType) -1;\n        val = __Pyx_PyLong_As_TA_CandleSettingType(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) >= 2 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) >= 3 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) >= 4 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (TA_CandleSettingType) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(TA_CandleSettingType) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) ((((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) ((((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_CandleSettingType) ((((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(TA_CandleSettingType) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, long, PyLong_AsLong(x))\n        } else if ((sizeof(TA_CandleSettingType) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        TA_CandleSettingType val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (TA_CandleSettingType) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (TA_CandleSettingType) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (TA_CandleSettingType) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (TA_CandleSettingType) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(TA_CandleSettingType) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((TA_CandleSettingType) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(TA_CandleSettingType) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((TA_CandleSettingType) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((TA_CandleSettingType) 1) << (sizeof(TA_CandleSettingType) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (TA_CandleSettingType) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to TA_CandleSettingType\");\n    return (TA_CandleSettingType) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to TA_CandleSettingType\");\n    return (TA_CandleSettingType) -1;\n}\n\n/* CIntFromPy */\nstatic CYTHON_INLINE TA_RangeType __Pyx_PyLong_As_TA_RangeType(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_RangeType neg_one = (TA_RangeType) -1, const_zero = (TA_RangeType) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        TA_RangeType val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (TA_RangeType) -1;\n        val = __Pyx_PyLong_As_TA_RangeType(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) >= 2 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) >= 3 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) >= 4 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (TA_RangeType) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(TA_RangeType) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(TA_RangeType) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(TA_RangeType) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((TA_RangeType)-1)*(((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) {\n                            return (TA_RangeType) ((((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((TA_RangeType)-1)*(((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) {\n                            return (TA_RangeType) ((((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_RangeType) (((TA_RangeType)-1)*(((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) {\n                            return (TA_RangeType) ((((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(TA_RangeType) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, long, PyLong_AsLong(x))\n        } else if ((sizeof(TA_RangeType) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        TA_RangeType val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (TA_RangeType) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (TA_RangeType) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (TA_RangeType) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (TA_RangeType) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(TA_RangeType) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((TA_RangeType) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(TA_RangeType) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((TA_RangeType) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((TA_RangeType) 1) << (sizeof(TA_RangeType) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (TA_RangeType) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to TA_RangeType\");\n    return (TA_RangeType) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to TA_RangeType\");\n    return (TA_RangeType) -1;\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const long neg_one = (long) -1, const_zero = (long) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(long) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(long) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(long) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(long),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInputParameterType value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_OptInputParameterType neg_one = (TA_OptInputParameterType) -1, const_zero = (TA_OptInputParameterType) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(TA_OptInputParameterType) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_OptInputParameterType) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(TA_OptInputParameterType) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(TA_OptInputParameterType) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_OptInputParameterType) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(TA_OptInputParameterType),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(TA_OptInputParameterType));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncFlags(TA_FuncFlags value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_FuncFlags neg_one = (TA_FuncFlags) -1, const_zero = (TA_FuncFlags) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(TA_FuncFlags) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_FuncFlags) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(TA_FuncFlags) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(TA_FuncFlags) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_FuncFlags) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(TA_FuncFlags),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(TA_FuncFlags));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_InputFlags(TA_InputFlags value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_InputFlags neg_one = (TA_InputFlags) -1, const_zero = (TA_InputFlags) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(TA_InputFlags) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_InputFlags) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(TA_InputFlags) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(TA_InputFlags) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_InputFlags) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(TA_InputFlags),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(TA_InputFlags));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* CIntToPy */\nstatic CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OutputFlags(TA_OutputFlags value) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const TA_OutputFlags neg_one = (TA_OutputFlags) -1, const_zero = (TA_OutputFlags) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (is_unsigned) {\n        if (sizeof(TA_OutputFlags) < sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_OutputFlags) <= sizeof(unsigned long)) {\n            return PyLong_FromUnsignedLong((unsigned long) value);\n#if !CYTHON_COMPILING_IN_PYPY\n        } else if (sizeof(TA_OutputFlags) <= sizeof(unsigned PY_LONG_LONG)) {\n            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);\n#endif\n        }\n    } else {\n        if (sizeof(TA_OutputFlags) <= sizeof(long)) {\n            return PyLong_FromLong((long) value);\n        } else if (sizeof(TA_OutputFlags) <= sizeof(PY_LONG_LONG)) {\n            return PyLong_FromLongLong((PY_LONG_LONG) value);\n        }\n    }\n    {\n        unsigned char *bytes = (unsigned char *)&value;\n#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4\n        if (is_unsigned) {\n            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);\n        } else {\n            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);\n        }\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        return _PyLong_FromByteArray(bytes, sizeof(TA_OutputFlags),\n                                     little, !is_unsigned);\n#else\n        int one = 1; int little = (int)*(unsigned char *)&one;\n        PyObject *from_bytes, *result = NULL, *kwds = NULL;\n        PyObject *py_bytes = NULL, *order_str = NULL;\n        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, \"from_bytes\");\n        if (!from_bytes) return NULL;\n        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(TA_OutputFlags));\n        if (!py_bytes) goto limited_bad;\n        order_str = PyUnicode_FromString(little ? \"little\" : \"big\");\n        if (!order_str) goto limited_bad;\n        {\n            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };\n            if (!is_unsigned) {\n                kwds = __Pyx_MakeVectorcallBuilderKwds(1);\n                if (!kwds) goto limited_bad;\n                if (__Pyx_VectorcallBuilder_AddArgStr(\"signed\", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;\n            }\n            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);\n        }\n        limited_bad:\n        Py_XDECREF(kwds);\n        Py_XDECREF(order_str);\n        Py_XDECREF(py_bytes);\n        Py_XDECREF(from_bytes);\n        return result;\n#endif\n    }\n}\n\n/* FormatTypeName */\n#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000\nstatic __Pyx_TypeName\n__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)\n{\n    PyObject *module = NULL, *name = NULL, *result = NULL;\n    #if __PYX_LIMITED_VERSION_HEX < 0x030b0000\n    name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,\n                                               __pyx_mstate_global->__pyx_n_u_qualname);\n    #else\n    name = PyType_GetQualName(tp);\n    #endif\n    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;\n    module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,\n                                               __pyx_mstate_global->__pyx_n_u_module);\n    if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;\n    if (PyUnicode_CompareWithASCIIString(module, \"builtins\") == 0) {\n        result = name;\n        name = NULL;\n        goto done;\n    }\n    result = PyUnicode_FromFormat(\"%U.%U\", module, name);\n    if (unlikely(result == NULL)) goto bad;\n  done:\n    Py_XDECREF(name);\n    Py_XDECREF(module);\n    return result;\n  bad:\n    PyErr_Clear();\n    if (name) {\n        result = name;\n        name = NULL;\n    } else {\n        result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__15);\n    }\n    goto done;\n}\n#endif\n\n/* CIntFromPy */\nstatic CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wconversion\"\n#endif\n    const long neg_one = (long) -1, const_zero = (long) 0;\n#ifdef __Pyx_HAS_GCC_DIAGNOSTIC\n#pragma GCC diagnostic pop\n#endif\n    const int is_unsigned = neg_one > const_zero;\n    if (unlikely(!PyLong_Check(x))) {\n        long val;\n        PyObject *tmp = __Pyx_PyNumber_Long(x);\n        if (!tmp) return (long) -1;\n        val = __Pyx_PyLong_As_long(tmp);\n        Py_DECREF(tmp);\n        return val;\n    }\n    if (is_unsigned) {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (unlikely(__Pyx_PyLong_IsNeg(x))) {\n            goto raise_neg_overflow;\n        } else if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_DigitCount(x)) {\n                case 2:\n                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {\n                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {\n                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {\n                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7\n        if (unlikely(Py_SIZE(x) < 0)) {\n            goto raise_neg_overflow;\n        }\n#else\n        {\n            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);\n            if (unlikely(result < 0))\n                return (long) -1;\n            if (unlikely(result == 1))\n                goto raise_neg_overflow;\n        }\n#endif\n        if ((sizeof(long) <= sizeof(unsigned long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))\n        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))\n        }\n    } else {\n#if CYTHON_USE_PYLONG_INTERNALS\n        if (__Pyx_PyLong_IsCompact(x)) {\n            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))\n        } else {\n            const digit* digits = __Pyx_PyLong_Digits(x);\n            assert(__Pyx_PyLong_DigitCount(x) > 1);\n            switch (__Pyx_PyLong_SignedDigitCount(x)) {\n                case -2:\n                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {\n                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n                case 2:\n                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {\n                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n                case -3:\n                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {\n                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n                case 3:\n                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {\n                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n                case -4:\n                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {\n                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n                case 4:\n                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {\n                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {\n                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))\n                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {\n                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));\n                        }\n                    }\n                    break;\n            }\n        }\n#endif\n        if ((sizeof(long) <= sizeof(long))) {\n            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))\n        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {\n            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))\n        }\n    }\n    {\n        long val;\n        int ret = -1;\n#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API\n        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(\n            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));\n        if (unlikely(bytes_copied == -1)) {\n        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {\n            goto raise_overflow;\n        } else {\n            ret = 0;\n        }\n#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)\n        int one = 1; int is_little = (int)*(unsigned char *)&one;\n        unsigned char *bytes = (unsigned char *)&val;\n        ret = _PyLong_AsByteArray((PyLongObject *)x,\n                                    bytes, sizeof(val),\n                                    is_little, !is_unsigned);\n#else\n        PyObject *v;\n        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;\n        int bits, remaining_bits, is_negative = 0;\n        int chunk_size = (sizeof(long) < 8) ? 30 : 62;\n        if (likely(PyLong_CheckExact(x))) {\n            v = __Pyx_NewRef(x);\n        } else {\n            v = PyNumber_Long(x);\n            if (unlikely(!v)) return (long) -1;\n            assert(PyLong_CheckExact(v));\n        }\n        {\n            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);\n            if (unlikely(result < 0)) {\n                Py_DECREF(v);\n                return (long) -1;\n            }\n            is_negative = result == 1;\n        }\n        if (is_unsigned && unlikely(is_negative)) {\n            Py_DECREF(v);\n            goto raise_neg_overflow;\n        } else if (is_negative) {\n            stepval = PyNumber_Invert(v);\n            Py_DECREF(v);\n            if (unlikely(!stepval))\n                return (long) -1;\n        } else {\n            stepval = v;\n        }\n        v = NULL;\n        val = (long) 0;\n        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;\n        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;\n        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {\n            PyObject *tmp, *digit;\n            long idigit;\n            digit = PyNumber_And(stepval, mask);\n            if (unlikely(!digit)) goto done;\n            idigit = PyLong_AsLong(digit);\n            Py_DECREF(digit);\n            if (unlikely(idigit < 0)) goto done;\n            val |= ((long) idigit) << bits;\n            tmp = PyNumber_Rshift(stepval, shift);\n            if (unlikely(!tmp)) goto done;\n            Py_DECREF(stepval); stepval = tmp;\n        }\n        Py_DECREF(shift); shift = NULL;\n        Py_DECREF(mask); mask = NULL;\n        {\n            long idigit = PyLong_AsLong(stepval);\n            if (unlikely(idigit < 0)) goto done;\n            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);\n            if (unlikely(idigit >= (1L << remaining_bits)))\n                goto raise_overflow;\n            val |= ((long) idigit) << bits;\n        }\n        if (!is_unsigned) {\n            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))\n                goto raise_overflow;\n            if (is_negative)\n                val = ~val;\n        }\n        ret = 0;\n    done:\n        Py_XDECREF(shift);\n        Py_XDECREF(mask);\n        Py_XDECREF(stepval);\n#endif\n        if (unlikely(ret))\n            return (long) -1;\n        return val;\n    }\nraise_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"value too large to convert to long\");\n    return (long) -1;\nraise_neg_overflow:\n    PyErr_SetString(PyExc_OverflowError,\n        \"can't convert negative value to long\");\n    return (long) -1;\n}\n\n/* FastTypeChecks */\n#if CYTHON_COMPILING_IN_CPYTHON\nstatic int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {\n    while (a) {\n        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);\n        if (a == b)\n            return 1;\n    }\n    return b == &PyBaseObject_Type;\n}\nstatic CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {\n    PyObject *mro;\n    if (a == b) return 1;\n    mro = a->tp_mro;\n    if (likely(mro)) {\n        Py_ssize_t i, n;\n        n = PyTuple_GET_SIZE(mro);\n        for (i = 0; i < n; i++) {\n            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)\n                return 1;\n        }\n        return 0;\n    }\n    return __Pyx_InBases(a, b);\n}\nstatic CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {\n    PyObject *mro;\n    if (cls == a || cls == b) return 1;\n    mro = cls->tp_mro;\n    if (likely(mro)) {\n        Py_ssize_t i, n;\n        n = PyTuple_GET_SIZE(mro);\n        for (i = 0; i < n; i++) {\n            PyObject *base = PyTuple_GET_ITEM(mro, i);\n            if (base == (PyObject *)a || base == (PyObject *)b)\n                return 1;\n        }\n        return 0;\n    }\n    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);\n}\nstatic CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {\n    if (exc_type1) {\n        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);\n    } else {\n        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);\n    }\n}\nstatic int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {\n    Py_ssize_t i, n;\n    assert(PyExceptionClass_Check(exc_type));\n    n = PyTuple_GET_SIZE(tuple);\n    for (i=0; i<n; i++) {\n        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;\n    }\n    for (i=0; i<n; i++) {\n        PyObject *t = PyTuple_GET_ITEM(tuple, i);\n        if (likely(PyExceptionClass_Check(t))) {\n            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;\n        } else {\n        }\n    }\n    return 0;\n}\nstatic CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {\n    if (likely(err == exc_type)) return 1;\n    if (likely(PyExceptionClass_Check(err))) {\n        if (likely(PyExceptionClass_Check(exc_type))) {\n            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);\n        } else if (likely(PyTuple_Check(exc_type))) {\n            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);\n        } else {\n        }\n    }\n    return PyErr_GivenExceptionMatches(err, exc_type);\n}\nstatic CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {\n    assert(PyExceptionClass_Check(exc_type1));\n    assert(PyExceptionClass_Check(exc_type2));\n    if (likely(err == exc_type1 || err == exc_type2)) return 1;\n    if (likely(PyExceptionClass_Check(err))) {\n        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);\n    }\n    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));\n}\n#endif\n\n/* GetRuntimeVersion */\n#if __PYX_LIMITED_VERSION_HEX < 0x030b0000\nvoid __Pyx_init_runtime_version(void) {\n    if (__Pyx_cached_runtime_version == 0) {\n        const char* rt_version = Py_GetVersion();\n        unsigned long version = 0;\n        unsigned long factor = 0x01000000UL;\n        unsigned int digit = 0;\n        int i = 0;\n        while (factor) {\n            while ('0' <= rt_version[i] && rt_version[i] <= '9') {\n                digit = digit * 10 + (unsigned int) (rt_version[i] - '0');\n                ++i;\n            }\n            version += factor * digit;\n            if (rt_version[i] != '.')\n                break;\n            digit = 0;\n            factor >>= 8;\n            ++i;\n        }\n        __Pyx_cached_runtime_version = version;\n    }\n}\n#endif\nstatic unsigned long __Pyx_get_runtime_version(void) {\n#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000\n    return Py_Version & ~0xFFUL;\n#else\n    return __Pyx_cached_runtime_version;\n#endif\n}\n\n/* CheckBinaryVersion */\nstatic int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {\n    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;\n    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))\n        return 0;\n    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))\n        return 1;\n    {\n        char message[200];\n        PyOS_snprintf(message, sizeof(message),\n                      \"compile time Python version %d.%d \"\n                      \"of module '%.100s' \"\n                      \"%s \"\n                      \"runtime version %d.%d\",\n                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),\n                       __Pyx_MODULE_NAME,\n                       (allow_newer) ? \"was newer than\" : \"does not match\",\n                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)\n       );\n        return PyErr_WarnEx(NULL, message, 1);\n    }\n}\n\n/* NewCodeObj */\n#if CYTHON_COMPILING_IN_LIMITED_API\n    static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,\n                                       PyObject *code, PyObject *c, PyObject* n, PyObject *v,\n                                       PyObject *fv, PyObject *cell, PyObject* fn,\n                                       PyObject *name, int fline, PyObject *lnos) {\n        PyObject *exception_table = NULL;\n        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;\n        #if __PYX_LIMITED_VERSION_HEX < 0x030b0000\n        PyObject *version_info;\n        PyObject *py_minor_version = NULL;\n        #endif\n        long minor_version = 0;\n        PyObject *type, *value, *traceback;\n        PyErr_Fetch(&type, &value, &traceback);\n        #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000\n        minor_version = 11;\n        #else\n        if (!(version_info = PySys_GetObject(\"version_info\"))) goto end;\n        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;\n        minor_version = PyLong_AsLong(py_minor_version);\n        Py_DECREF(py_minor_version);\n        if (minor_version == -1 && PyErr_Occurred()) goto end;\n        #endif\n        if (!(types_module = PyImport_ImportModule(\"types\"))) goto end;\n        if (!(code_type = PyObject_GetAttrString(types_module, \"CodeType\"))) goto end;\n        if (minor_version <= 7) {\n            (void)p;\n            result = PyObject_CallFunction(code_type, \"iiiiiOOOOOOiOOO\", a, k, l, s, f, code,\n                          c, n, v, fn, name, fline, lnos, fv, cell);\n        } else if (minor_version <= 10) {\n            result = PyObject_CallFunction(code_type, \"iiiiiiOOOOOOiOOO\", a,p, k, l, s, f, code,\n                          c, n, v, fn, name, fline, lnos, fv, cell);\n        } else {\n            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;\n            result = PyObject_CallFunction(code_type, \"iiiiiiOOOOOOOiOOOO\", a,p, k, l, s, f, code,\n                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);\n        }\n    end:\n        Py_XDECREF(code_type);\n        Py_XDECREF(exception_table);\n        Py_XDECREF(types_module);\n        if (type) {\n            PyErr_Restore(type, value, traceback);\n        }\n        return result;\n    }\n#elif PY_VERSION_HEX >= 0x030B0000\n  static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,\n                                         PyObject *code, PyObject *c, PyObject* n, PyObject *v,\n                                         PyObject *fv, PyObject *cell, PyObject* fn,\n                                         PyObject *name, int fline, PyObject *lnos) {\n    PyCodeObject *result;\n    result =\n      #if PY_VERSION_HEX >= 0x030C0000\n        PyUnstable_Code_NewWithPosOnlyArgs\n      #else\n        PyCode_NewWithPosOnlyArgs\n      #endif\n        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);\n    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1\n    if (likely(result))\n        result->_co_firsttraceable = 0;\n    #endif\n    return result;\n  }\n#elif !CYTHON_COMPILING_IN_PYPY\n  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\\\n          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\n#else\n  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\\\n          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\n#endif\nstatic PyObject* __Pyx_PyCode_New(\n        const __Pyx_PyCode_New_function_description descr,\n        PyObject * const *varnames,\n        PyObject *filename,\n        PyObject *funcname,\n        PyObject *line_table,\n        PyObject *tuple_dedup_map\n) {\n    PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;\n    Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;\n    PyObject *varnames_tuple = PyTuple_New(var_count);\n    if (unlikely(!varnames_tuple)) return NULL;\n    for (Py_ssize_t i=0; i < var_count; i++) {\n        Py_INCREF(varnames[i]);\n        if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;\n    }\n    #if CYTHON_COMPILING_IN_LIMITED_API\n    varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);\n    if (!varnames_tuple_dedup) {\n        if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;\n        varnames_tuple_dedup = varnames_tuple;\n    }\n    #else\n    varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);\n    if (unlikely(!varnames_tuple_dedup)) goto done;\n    #endif\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_INCREF(varnames_tuple_dedup);\n    #endif\n    if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {\n        Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);\n        #if !CYTHON_ASSUME_SAFE_SIZE\n        if (unlikely(line_table_length == -1)) goto done;\n        #endif\n        Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;\n        code_bytes = PyBytes_FromStringAndSize(NULL, code_len);\n        if (unlikely(!code_bytes)) goto done;\n        char* c_code_bytes = PyBytes_AsString(code_bytes);\n        if (unlikely(!c_code_bytes)) goto done;\n        memset(c_code_bytes, 0, (size_t) code_len);\n    }\n    code_obj = (PyObject*) __Pyx__PyCode_New(\n        (int) descr.argcount,\n        (int) descr.num_posonly_args,\n        (int) descr.num_kwonly_args,\n        (int) descr.nlocals,\n        0,\n        (int) descr.flags,\n        code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,\n        __pyx_mstate_global->__pyx_empty_tuple,\n        __pyx_mstate_global->__pyx_empty_tuple,\n        varnames_tuple_dedup,\n        __pyx_mstate_global->__pyx_empty_tuple,\n        __pyx_mstate_global->__pyx_empty_tuple,\n        filename,\n        funcname,\n        (int) descr.first_line,\n        (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes\n    );\ndone:\n    Py_XDECREF(code_bytes);\n    #if CYTHON_AVOID_BORROWED_REFS\n    Py_XDECREF(varnames_tuple_dedup);\n    #endif\n    Py_DECREF(varnames_tuple);\n    return code_obj;\n}\n\n/* DecompressString */\nstatic PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {\n    PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;\n    const char* module_name = algo == 3 ? \"compression.zstd\" : algo == 2 ? \"bz2\" : \"zlib\";\n    PyObject *methodname = PyUnicode_FromString(\"decompress\");\n    if (unlikely(!methodname)) return NULL;\n    #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000\n    if (algo == 3) {\n        PyObject *fromlist = Py_BuildValue(\"[O]\", methodname);\n        if (unlikely(!fromlist)) goto bad;\n        module = PyImport_ImportModuleLevel(\"compression.zstd\", NULL, NULL, fromlist, 0);\n        Py_DECREF(fromlist);\n    } else\n    #endif\n        module = PyImport_ImportModule(module_name);\n    if (unlikely(!module)) goto import_failed;\n    decompress = PyObject_GetAttr(module, methodname);\n    if (unlikely(!decompress)) goto import_failed;\n    {\n        #ifdef __cplusplus\n            char *memview_bytes = const_cast<char*>(s);\n        #else\n            #if defined(__clang__)\n              #pragma clang diagnostic push\n              #pragma clang diagnostic ignored \"-Wcast-qual\"\n            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)\n              #pragma GCC diagnostic push\n              #pragma GCC diagnostic ignored \"-Wcast-qual\"\n            #endif\n            char *memview_bytes = (char*) s;\n            #if defined(__clang__)\n              #pragma clang diagnostic pop\n            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)\n              #pragma GCC diagnostic pop\n            #endif\n        #endif\n        #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)\n        int memview_flags = 0x100;\n        #else\n        int memview_flags = PyBUF_READ;\n        #endif\n        compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);\n    }\n    if (unlikely(!compressed_bytes)) {\n        Py_DECREF(decompress);\n        goto bad;\n    }\n    decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);\n    Py_DECREF(compressed_bytes);\n    Py_DECREF(decompress);\n    Py_DECREF(module);\n    Py_DECREF(methodname);\n    return decompressed;\nimport_failed:\n    PyErr_Format(PyExc_ImportError,\n        \"Failed to import '%.20s.decompress' - cannot initialise module strings. \"\n        \"String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.\",\n        module_name, algo);\nbad:\n    Py_XDECREF(module);\n    Py_DECREF(methodname);\n    return NULL;\n}\n\n#include <string.h>\nstatic CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {\n    size_t len = strlen(s);\n    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {\n        PyErr_SetString(PyExc_OverflowError, \"byte string is too long\");\n        return -1;\n    }\n    return (Py_ssize_t) len;\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {\n    Py_ssize_t len = __Pyx_ssize_strlen(c_str);\n    if (unlikely(len < 0)) return NULL;\n    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {\n    Py_ssize_t len = __Pyx_ssize_strlen(c_str);\n    if (unlikely(len < 0)) return NULL;\n    return PyByteArray_FromStringAndSize(c_str, len);\n}\nstatic CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {\n    Py_ssize_t ignore;\n    return __Pyx_PyObject_AsStringAndSize(o, &ignore);\n}\n#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8\nstatic CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {\n    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;\n#if CYTHON_COMPILING_IN_LIMITED_API\n    {\n        const char* result;\n        Py_ssize_t unicode_length;\n        CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII\n        #if __PYX_LIMITED_VERSION_HEX < 0x030A0000\n        if (unlikely(PyArg_Parse(o, \"s#\", &result, length) < 0)) return NULL;\n        #else\n        result = PyUnicode_AsUTF8AndSize(o, length);\n        #endif\n        #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII\n        unicode_length = PyUnicode_GetLength(o);\n        if (unlikely(unicode_length < 0)) return NULL;\n        if (unlikely(unicode_length != *length)) {\n            PyUnicode_AsASCIIString(o);\n            return NULL;\n        }\n        #endif\n        return result;\n    }\n#else\n#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII\n    if (likely(PyUnicode_IS_ASCII(o))) {\n        *length = PyUnicode_GET_LENGTH(o);\n        return PyUnicode_AsUTF8(o);\n    } else {\n        PyUnicode_AsASCIIString(o);\n        return NULL;\n    }\n#else\n    return PyUnicode_AsUTF8AndSize(o, length);\n#endif\n#endif\n}\n#endif\nstatic CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {\n#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8\n    if (PyUnicode_Check(o)) {\n        return __Pyx_PyUnicode_AsStringAndSize(o, length);\n    } else\n#endif\n    if (PyByteArray_Check(o)) {\n#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))\n        *length = PyByteArray_GET_SIZE(o);\n        return PyByteArray_AS_STRING(o);\n#else\n        *length = PyByteArray_Size(o);\n        if (*length == -1) return NULL;\n        return PyByteArray_AsString(o);\n#endif\n    } else\n    {\n        char* result;\n        int r = PyBytes_AsStringAndSize(o, &result, length);\n        if (unlikely(r < 0)) {\n            return NULL;\n        } else {\n            return result;\n        }\n    }\n}\nstatic CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {\n   int is_true = x == Py_True;\n   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;\n   else return PyObject_IsTrue(x);\n}\nstatic CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {\n    int retval;\n    if (unlikely(!x)) return -1;\n    retval = __Pyx_PyObject_IsTrue(x);\n    Py_DECREF(x);\n    return retval;\n}\nstatic PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {\n    __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));\n    if (PyLong_Check(result)) {\n        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,\n                \"__int__ returned non-int (type \" __Pyx_FMT_TYPENAME \").  \"\n                \"The ability to return an instance of a strict subclass of int is deprecated, \"\n                \"and may be removed in a future version of Python.\",\n                result_type_name)) {\n            __Pyx_DECREF_TypeName(result_type_name);\n            Py_DECREF(result);\n            return NULL;\n        }\n        __Pyx_DECREF_TypeName(result_type_name);\n        return result;\n    }\n    PyErr_Format(PyExc_TypeError,\n                 \"__int__ returned non-int (type \" __Pyx_FMT_TYPENAME \")\",\n                 result_type_name);\n    __Pyx_DECREF_TypeName(result_type_name);\n    Py_DECREF(result);\n    return NULL;\n}\nstatic CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {\n#if CYTHON_USE_TYPE_SLOTS\n  PyNumberMethods *m;\n#endif\n  PyObject *res = NULL;\n  if (likely(PyLong_Check(x)))\n      return __Pyx_NewRef(x);\n#if CYTHON_USE_TYPE_SLOTS\n  m = Py_TYPE(x)->tp_as_number;\n  if (likely(m && m->nb_int)) {\n      res = m->nb_int(x);\n  }\n#else\n  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {\n      res = PyNumber_Long(x);\n  }\n#endif\n  if (likely(res)) {\n      if (unlikely(!PyLong_CheckExact(res))) {\n          return __Pyx_PyNumber_LongWrongResultType(res);\n      }\n  }\n  else if (!PyErr_Occurred()) {\n      PyErr_SetString(PyExc_TypeError,\n                      \"an integer is required\");\n  }\n  return res;\n}\nstatic CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {\n  Py_ssize_t ival;\n  PyObject *x;\n  if (likely(PyLong_CheckExact(b))) {\n    #if CYTHON_USE_PYLONG_INTERNALS\n    if (likely(__Pyx_PyLong_IsCompact(b))) {\n        return __Pyx_PyLong_CompactValue(b);\n    } else {\n      const digit* digits = __Pyx_PyLong_Digits(b);\n      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);\n      switch (size) {\n         case 2:\n           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {\n             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n         case -2:\n           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {\n             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n         case 3:\n           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {\n             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n         case -3:\n           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {\n             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n         case 4:\n           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {\n             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n         case -4:\n           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {\n             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));\n           }\n           break;\n      }\n    }\n    #endif\n    return PyLong_AsSsize_t(b);\n  }\n  x = PyNumber_Index(b);\n  if (!x) return -1;\n  ival = PyLong_AsSsize_t(x);\n  Py_DECREF(x);\n  return ival;\n}\nstatic CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {\n  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {\n    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);\n  } else {\n    Py_ssize_t ival;\n    PyObject *x;\n    x = PyNumber_Index(o);\n    if (!x) return -1;\n    ival = PyLong_AsLong(x);\n    Py_DECREF(x);\n    return ival;\n  }\n}\nstatic CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {\n    CYTHON_UNUSED_VAR(b);\n    return __Pyx_NewRef(Py_None);\n}\nstatic CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {\n  return __Pyx_NewRef(b ? Py_True: Py_False);\n}\nstatic CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {\n    return PyLong_FromSize_t(ival);\n}\n\n\n/* MultiPhaseInitModuleState */\n#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE\n#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)\n  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1\n#else\n  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0\n#endif\n#endif\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS\n#error \"Module state with PEP489 requires atomics. Currently that's one of\\\n C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics\"\n#endif\n#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n#define __Pyx_ModuleStateLookup_Lock()\n#define __Pyx_ModuleStateLookup_Unlock()\n#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000\nstatic PyMutex __Pyx_ModuleStateLookup_mutex = {0};\n#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)\n#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)\n#elif defined(__cplusplus) && __cplusplus >= 201103L\n#include <mutex>\nstatic std::mutex __Pyx_ModuleStateLookup_mutex;\n#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()\n#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()\n#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)\n#include <threads.h>\nstatic mtx_t __Pyx_ModuleStateLookup_mutex;\nstatic once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;\nstatic void __Pyx_ModuleStateLookup_initialize_mutex(void) {\n    mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);\n}\n#define __Pyx_ModuleStateLookup_Lock()\\\n  call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\\\n  mtx_lock(&__Pyx_ModuleStateLookup_mutex)\n#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)\n#elif defined(HAVE_PTHREAD_H)\n#include <pthread.h>\nstatic pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;\n#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)\n#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)\n#elif defined(_WIN32)\n#include <Windows.h>  // synchapi.h on its own doesn't work\nstatic SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;\n#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)\n#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)\n#else\n#error \"No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\\\n Requires C standard >= C11, or C++ standard >= C++11,\\\n or pthreads, or the Windows 32 API, or Python >= 3.13.\"\n#endif\ntypedef struct {\n    int64_t id;\n    PyObject *module;\n} __Pyx_InterpreterIdAndModule;\ntypedef struct {\n    char interpreter_id_as_index;\n    Py_ssize_t count;\n    Py_ssize_t allocated;\n    __Pyx_InterpreterIdAndModule table[1];\n} __Pyx_ModuleStateLookupData;\n#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\nstatic __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;\n#endif\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\nstatic __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;\n#else\nstatic __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;\n#endif\nstatic __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(\n        __Pyx_InterpreterIdAndModule* table,\n        Py_ssize_t count,\n        int64_t interpreterId) {\n    __Pyx_InterpreterIdAndModule* begin = table;\n    __Pyx_InterpreterIdAndModule* end = begin + count;\n    if (begin->id == interpreterId) {\n        return begin;\n    }\n    while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {\n        __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;\n        if (halfway->id == interpreterId) {\n            return halfway;\n        }\n        if (halfway->id < interpreterId) {\n            begin = halfway;\n        } else {\n            end = halfway;\n        }\n    }\n    for (; begin < end; ++begin) {\n        if (begin->id >= interpreterId) return begin;\n    }\n    return begin;\n}\nstatic PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {\n    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());\n    if (interpreter_id == -1) return NULL;\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n    __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);\n    {\n        __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);\n        if (likely(data)) {\n            __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);\n            if (likely(data == new_data)) {\n                goto read_finished;\n            }\n        }\n        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);\n        __Pyx_ModuleStateLookup_Lock();\n        __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);\n        data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);\n        __Pyx_ModuleStateLookup_Unlock();\n    }\n  read_finished:;\n#else\n    __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;\n#endif\n    __Pyx_InterpreterIdAndModule* found = NULL;\n    if (unlikely(!data)) goto end;\n    if (data->interpreter_id_as_index) {\n        if (interpreter_id < data->count) {\n            found = data->table+interpreter_id;\n        }\n    } else {\n        found = __Pyx_State_FindModuleStateLookupTableLowerBound(\n            data->table, data->count, interpreter_id);\n    }\n  end:\n    {\n        PyObject *result=NULL;\n        if (found && found->id == interpreter_id) {\n            result = found->module;\n        }\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);\n#endif\n        return result;\n    }\n}\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\nstatic void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {\n    while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);\n}\n#else\n#define __Pyx_ModuleStateLookup_wait_until_no_readers()\n#endif\nstatic int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {\n    Py_ssize_t to_allocate = (*old_data)->allocated;\n    while (to_allocate <= interpreter_id) {\n        if (to_allocate == 0) to_allocate = 1;\n        else to_allocate *= 2;\n    }\n    __Pyx_ModuleStateLookupData *new_data = *old_data;\n    if (to_allocate != (*old_data)->allocated) {\n         new_data = (__Pyx_ModuleStateLookupData *)realloc(\n            *old_data,\n            sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));\n        if (!new_data) {\n            PyErr_NoMemory();\n            return -1;\n        }\n        for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {\n            new_data->table[i].id = i;\n            new_data->table[i].module = NULL;\n        }\n        new_data->allocated = to_allocate;\n    }\n    new_data->table[interpreter_id].module = module;\n    if (new_data->count < interpreter_id+1) {\n        new_data->count = interpreter_id+1;\n    }\n    *old_data = new_data;\n    return 0;\n}\nstatic void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {\n    __Pyx_InterpreterIdAndModule *read = data->table;\n    __Pyx_InterpreterIdAndModule *write = data->table;\n    __Pyx_InterpreterIdAndModule *end = read + data->count;\n    for (; read<end; ++read) {\n        if (read->module) {\n            write->id = read->id;\n            write->module = read->module;\n            ++write;\n        }\n    }\n    data->count = write - data->table;\n    for (; write<end; ++write) {\n        write->id = 0;\n        write->module = NULL;\n    }\n    data->interpreter_id_as_index = 0;\n}\nstatic int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {\n    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());\n    if (interpreter_id == -1) return -1;\n    int result = 0;\n    __Pyx_ModuleStateLookup_Lock();\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n    __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)\n            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);\n#else\n    __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;\n#endif\n    __Pyx_ModuleStateLookupData *new_data = old_data;\n    if (!new_data) {\n        new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));\n        if (!new_data) {\n            result = -1;\n            PyErr_NoMemory();\n            goto end;\n        }\n        new_data->allocated = 1;\n        new_data->interpreter_id_as_index = 1;\n    }\n    __Pyx_ModuleStateLookup_wait_until_no_readers();\n    if (new_data->interpreter_id_as_index) {\n        if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {\n            result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);\n            goto end;\n        }\n        __Pyx_State_ConvertFromInterpIdAsIndex(new_data);\n    }\n    {\n        Py_ssize_t insert_at = 0;\n        {\n            __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(\n                new_data->table, new_data->count, interpreter_id);\n            assert(lower_bound);\n            insert_at = lower_bound - new_data->table;\n            if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {\n                lower_bound->module = module;\n                goto end;  // already in table, nothing more to do\n            }\n        }\n        if (new_data->count+1 >= new_data->allocated) {\n            Py_ssize_t to_allocate = (new_data->count+1)*2;\n            new_data =\n                (__Pyx_ModuleStateLookupData*)realloc(\n                    new_data,\n                    sizeof(__Pyx_ModuleStateLookupData) +\n                    (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));\n            if (!new_data) {\n                result = -1;\n                new_data = old_data;\n                PyErr_NoMemory();\n                goto end;\n            }\n            new_data->allocated = to_allocate;\n        }\n        ++new_data->count;\n        int64_t last_id = interpreter_id;\n        PyObject *last_module = module;\n        for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {\n            int64_t current_id = new_data->table[i].id;\n            new_data->table[i].id = last_id;\n            last_id = current_id;\n            PyObject *current_module = new_data->table[i].module;\n            new_data->table[i].module = last_module;\n            last_module = current_module;\n        }\n    }\n  end:\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);\n#else\n    __Pyx_ModuleStateLookup_data = new_data;\n#endif\n    __Pyx_ModuleStateLookup_Unlock();\n    return result;\n}\nstatic int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {\n    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());\n    if (interpreter_id == -1) return -1;\n    __Pyx_ModuleStateLookup_Lock();\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n    __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)\n            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);\n#else\n    __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;\n#endif\n    if (data->interpreter_id_as_index) {\n        if (interpreter_id < data->count) {\n            data->table[interpreter_id].module = NULL;\n        }\n        goto done;\n    }\n    {\n        __Pyx_ModuleStateLookup_wait_until_no_readers();\n        __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(\n            data->table, data->count, interpreter_id);\n        if (!lower_bound) goto done;\n        if (lower_bound->id != interpreter_id) goto done;\n        __Pyx_InterpreterIdAndModule *end = data->table+data->count;\n        for (;lower_bound<end-1; ++lower_bound) {\n            lower_bound->id = (lower_bound+1)->id;\n            lower_bound->module = (lower_bound+1)->module;\n        }\n    }\n    --data->count;\n    if (data->count == 0) {\n        free(data);\n        data = NULL;\n    }\n  done:\n#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE\n    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);\n#else\n    __Pyx_ModuleStateLookup_data = data;\n#endif\n    __Pyx_ModuleStateLookup_Unlock();\n    return 0;\n}\n#endif\n\n/* #### Code section: utility_code_pragmas_end ### */\n#ifdef _MSC_VER\n#pragma warning( pop )\n#endif\n\n\n\n/* #### Code section: end ### */\n#endif /* Py_PYTHON_H */\n"
  },
  {
    "path": "talib/_ta_lib.pxd",
    "content": "#cython: language_level=2\n\ncdef extern from \"ta-lib/ta_defs.h\":\n\n    ctypedef int TA_RetCode\n    const TA_RetCode TA_SUCCESS = 0\n    const TA_RetCode TA_LIB_NOT_INITIALIZE = 1\n    const TA_RetCode TA_BAD_PARAM = 2\n    const TA_RetCode TA_ALLOC_ERR = 3\n    const TA_RetCode TA_GROUP_NOT_FOUND = 4\n    const TA_RetCode TA_FUNC_NOT_FOUND = 5\n    const TA_RetCode TA_INVALID_HANDLE = 6\n    const TA_RetCode TA_INVALID_PARAM_HOLDER = 7\n    const TA_RetCode TA_INVALID_PARAM_HOLDER_TYPE = 8\n    const TA_RetCode TA_INVALID_PARAM_FUNCTION = 9\n    const TA_RetCode TA_INPUT_NOT_ALL_INITIALIZE = 10\n    const TA_RetCode TA_OUTPUT_NOT_ALL_INITIALIZE = 11\n    const TA_RetCode TA_OUT_OF_RANGE_START_INDEX = 12\n    const TA_RetCode TA_OUT_OF_RANGE_END_INDEX = 13\n    const TA_RetCode TA_INVALID_LIST_TYPE = 14\n    const TA_RetCode TA_BAD_OBJECT = 15\n    const TA_RetCode TA_NOT_SUPPORTED = 16\n    const TA_RetCode TA_INTERNAL_ERROR = 5000\n    const TA_RetCode TA_UNKNOWN_ERR = 0xffff\n\n    ctypedef int TA_Compatibility\n    const TA_Compatibility TA_COMPATIBILITY_DEFAULT = 0\n    const TA_Compatibility TA_COMPATIBILITY_METASTOCK = 1\n\n    ctypedef int TA_MAType\n    const TA_MAType TA_MAType_SMA = 0\n    const TA_MAType TA_MAType_EMA = 1\n    const TA_MAType TA_MAType_WMA = 2\n    const TA_MAType TA_MAType_DEMA = 3\n    const TA_MAType TA_MAType_TEMA = 4\n    const TA_MAType TA_MAType_TRIMA = 5\n    const TA_MAType TA_MAType_KAMA = 6\n    const TA_MAType TA_MAType_MAMA = 7\n    const TA_MAType TA_MAType_T3 = 8\n\n    ctypedef int TA_FuncUnstId\n    const TA_FuncUnstId TA_FUNC_UNST_ADX = 0\n    const TA_FuncUnstId TA_FUNC_UNST_ADXR = 1\n    const TA_FuncUnstId TA_FUNC_UNST_ATR = 2\n    const TA_FuncUnstId TA_FUNC_UNST_CMO = 3\n    const TA_FuncUnstId TA_FUNC_UNST_DX = 4\n    const TA_FuncUnstId TA_FUNC_UNST_EMA = 5\n    const TA_FuncUnstId TA_FUNC_UNST_HT_DCPERIOD = 6\n    const TA_FuncUnstId TA_FUNC_UNST_HT_DCPHASE = 7\n    const TA_FuncUnstId TA_FUNC_UNST_HD_PHASOR = 8\n    const TA_FuncUnstId TA_FUNC_UNST_HT_SINE = 9\n    const TA_FuncUnstId TA_FUNC_UNST_HT_TRENDLINE = 10\n    const TA_FuncUnstId TA_FUNC_UNST_HT_TRENDMODE = 11\n    const TA_FuncUnstId TA_FUNC_UNST_KAMA = 12\n    const TA_FuncUnstId TA_FUNC_UNST_MAMA = 13\n    const TA_FuncUnstId TA_FUNC_UNST_MFI = 14\n    const TA_FuncUnstId TA_FUNC_UNST_MINUS_DI = 15\n    const TA_FuncUnstId TA_FUNC_UNST_MINUS_DM = 16\n    const TA_FuncUnstId TA_FUNC_UNST_NATR = 17\n    const TA_FuncUnstId TA_FUNC_UNST_PLUS_DI = 18\n    const TA_FuncUnstId TA_FUNC_UNST_PLUS_DM = 19\n    const TA_FuncUnstId TA_FUNC_UNST_RSI = 20\n    const TA_FuncUnstId TA_FUNC_UNST_STOCHRSI = 21\n    const TA_FuncUnstId TA_FUNC_UNST_T3 = 21\n    const TA_FuncUnstId TA_FUNC_UNST_ALL = 22\n    const TA_FuncUnstId TA_FUNC_UNST_NONE = -1\n\n    ctypedef int TA_RangeType\n    const TA_RangeType TA_RangeType_RealBody = 0\n    const TA_RangeType TA_RangeType_HighLow = 1\n    const TA_RangeType TA_RangeType_Shadows = 2\n\n    ctypedef int TA_CandleSettingType\n    const TA_CandleSettingType TA_BodyLong = 0\n    const TA_CandleSettingType TA_BodyVeryLong = 1\n    const TA_CandleSettingType TA_BodyShort = 2\n    const TA_CandleSettingType TA_BodyDoji = 3\n    const TA_CandleSettingType TA_ShadowLong = 4\n    const TA_CandleSettingType TA_ShadowVeryLong = 5\n    const TA_CandleSettingType TA_ShadowShort = 6\n    const TA_CandleSettingType TA_ShadowVeryShort = 7\n    const TA_CandleSettingType TA_Near = 8\n    const TA_CandleSettingType TA_Far = 9\n    const TA_CandleSettingType TA_Equal = 10\n    const TA_CandleSettingType TA_AllCandleSettings = 11\n\ncdef extern from \"ta-lib/ta_common.h\":\n    const char *TA_GetVersionString()\n    const char *TA_GetVersionMajor()\n    const char *TA_GetVersionMinor()\n    const char *TA_GetVersionBuild()\n    const char *TA_GetVersionDate()\n    const char *TA_GetVersionTime()\n\n    ctypedef double TA_Real\n    ctypedef int TA_Integer\n\n    ctypedef struct TA_StringTable:\n        unsigned int size\n        const char **string\n        void *hiddenData\n\n    ctypedef struct TA_RetCodeInfo:\n        const char* enumStr\n        const char* infoStr\n\n    void TA_SetRetCodeInfo(TA_RetCode theRetCode, TA_RetCodeInfo *retCodeInfo)\n\n    TA_RetCode TA_Initialize()\n    TA_RetCode TA_Shutdown()\n\ncdef extern from \"ta-lib/ta_abstract.h\":\n\n    TA_RetCode TA_GroupTableAlloc(TA_StringTable **table)\n    TA_RetCode TA_GroupTableFree(TA_StringTable *table)\n\n    TA_RetCode TA_FuncTableAlloc(const char *group, TA_StringTable **table)\n    TA_RetCode TA_FuncTableFree(TA_StringTable *table)\n\n    ctypedef unsigned int TA_FuncHandle\n    TA_RetCode TA_GetFuncHandle(const char *name, const TA_FuncHandle **handle)\n\n    ctypedef int TA_FuncFlags\n    ctypedef struct TA_FuncInfo:\n        const char *name\n        const char *group\n        const char *hint\n        const char *camelCaseName\n        TA_FuncFlags flags\n        unsigned int nbInput\n        unsigned int nbOptInput\n        unsigned int nbOutput\n        const TA_FuncHandle *handle\n\n    TA_RetCode TA_GetFuncInfo(const TA_FuncHandle *handle, const TA_FuncInfo **funcInfo)\n\n    ctypedef int TA_InputParameterType\n    const TA_InputParameterType TA_Input_Price = 0\n    const TA_InputParameterType TA_Input_Real = 1\n    const TA_InputParameterType TA_Input_Integer = 2\n\n    ctypedef int TA_OptInputParameterType\n    const TA_OptInputParameterType TA_OptInput_RealRange = 0\n    const TA_OptInputParameterType TA_OptInput_RealList = 1\n    const TA_OptInputParameterType TA_OptInput_IntegerRange = 2\n    const TA_OptInputParameterType TA_OptInput_IntegerList = 3\n\n    ctypedef int TA_OutputParameterType\n    const TA_OutputParameterType TA_Output_Real = 0\n    const TA_OutputParameterType TA_Output_Integer = 1\n\n    ctypedef int TA_InputFlags\n    ctypedef int TA_OptInputFlags\n    ctypedef int TA_OutputFlags\n\n    ctypedef struct TA_InputParameterInfo:\n        TA_InputParameterType type\n        const char *paramName\n        TA_InputFlags flags\n\n    ctypedef struct TA_OptInputParameterInfo:\n        TA_OptInputParameterType type\n        const char *paramName\n        TA_OptInputFlags flags\n        const char *displayName\n        const void *dataSet\n        TA_Real defaultValue\n        const char *hint\n        const char *helpFile\n\n    ctypedef struct TA_OutputParameterInfo:\n        TA_OutputParameterType type\n        const char *paramName\n        TA_OutputFlags flags\n\n    TA_RetCode TA_GetInputParameterInfo(const TA_FuncHandle *handle, unsigned int paramIndex, const TA_InputParameterInfo **info)\n    TA_RetCode TA_GetOptInputParameterInfo(const TA_FuncHandle *handle, unsigned int paramIndex, const TA_OptInputParameterInfo **info)\n    TA_RetCode TA_GetOutputParameterInfo(const TA_FuncHandle *handle, unsigned int paramIndex, const TA_OutputParameterInfo **info)\n\n    ctypedef struct TA_ParamHolder:\n        void *hiddenData\n\n    TA_RetCode TA_ParamHolderAlloc(const TA_FuncHandle *handle, TA_ParamHolder **allocatedParams) # get_lookback()\n    TA_RetCode TA_ParamHolderFree(TA_ParamHolder *params)\n\n    TA_RetCode TA_SetOptInputParamInteger(TA_ParamHolder *params, unsigned int paramIndex, TA_Integer optInValue)\n    TA_RetCode TA_SetOptInputParamReal(TA_ParamHolder *params, unsigned int paramIndex, TA_Real optInValue)\n\n    TA_RetCode TA_GetLookback(const TA_ParamHolder *params, TA_Integer *lookback)\n\n    TA_RetCode TA_CallFunc(const TA_ParamHolder *params, TA_Integer startIdx, TA_Integer endIdx, TA_Integer *outBegIdx, TA_Integer *outNbElement)\n\n    char* TA_FunctionDescriptionXML()\n\ncdef extern from \"ta-lib/ta_func.h\":\n    TA_RetCode TA_ACCBANDS(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outRealUpperBand[], double outRealMiddleBand[], double outRealLowerBand[])\n    int TA_ACCBANDS_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ACOS(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ACOS_Lookback()\n    TA_RetCode TA_AD(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_AD_Lookback()\n    TA_RetCode TA_ADD(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ADD_Lookback()\n    TA_RetCode TA_ADOSC(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int optInFastPeriod, int optInSlowPeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ADOSC_Lookback(int optInFastPeriod, int optInSlowPeriod)\n    TA_RetCode TA_ADX(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ADX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ADXR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ADXR_Lookback(int optInTimePeriod)\n    TA_RetCode TA_APO(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_APO_Lookback(int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType)\n    TA_RetCode TA_AROON(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outAroonDown[], double outAroonUp[])\n    int TA_AROON_Lookback(int optInTimePeriod)\n    TA_RetCode TA_AROONOSC(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_AROONOSC_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ASIN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ASIN_Lookback()\n    TA_RetCode TA_ATAN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ATAN_Lookback()\n    TA_RetCode TA_ATR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ATR_Lookback(int optInTimePeriod)\n    TA_RetCode TA_AVGPRICE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_AVGPRICE_Lookback()\n    TA_RetCode TA_AVGDEV(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_AVGDEV_Lookback(int optInTimePeriod)\n    TA_RetCode TA_BBANDS(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outRealUpperBand[], double outRealMiddleBand[], double outRealLowerBand[])\n    int TA_BBANDS_Lookback(int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType)\n    TA_RetCode TA_BETA(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_BETA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_BOP(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_BOP_Lookback()\n    TA_RetCode TA_CCI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_CCI_Lookback(int optInTimePeriod)\n    TA_RetCode TA_CDL2CROWS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL2CROWS_Lookback()\n    TA_RetCode TA_CDL3BLACKCROWS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3BLACKCROWS_Lookback()\n    TA_RetCode TA_CDL3INSIDE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3INSIDE_Lookback()\n    TA_RetCode TA_CDL3LINESTRIKE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3LINESTRIKE_Lookback()\n    TA_RetCode TA_CDL3OUTSIDE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3OUTSIDE_Lookback()\n    TA_RetCode TA_CDL3STARSINSOUTH(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3STARSINSOUTH_Lookback()\n    TA_RetCode TA_CDL3WHITESOLDIERS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDL3WHITESOLDIERS_Lookback()\n    TA_RetCode TA_CDLABANDONEDBABY(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLABANDONEDBABY_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLADVANCEBLOCK(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLADVANCEBLOCK_Lookback()\n    TA_RetCode TA_CDLBELTHOLD(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLBELTHOLD_Lookback()\n    TA_RetCode TA_CDLBREAKAWAY(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLBREAKAWAY_Lookback()\n    TA_RetCode TA_CDLCLOSINGMARUBOZU(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLCLOSINGMARUBOZU_Lookback()\n    TA_RetCode TA_CDLCONCEALBABYSWALL(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLCONCEALBABYSWALL_Lookback()\n    TA_RetCode TA_CDLCOUNTERATTACK(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLCOUNTERATTACK_Lookback()\n    TA_RetCode TA_CDLDARKCLOUDCOVER(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLDARKCLOUDCOVER_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLDOJI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLDOJI_Lookback()\n    TA_RetCode TA_CDLDOJISTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLDOJISTAR_Lookback()\n    TA_RetCode TA_CDLDRAGONFLYDOJI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLDRAGONFLYDOJI_Lookback()\n    TA_RetCode TA_CDLENGULFING(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLENGULFING_Lookback()\n    TA_RetCode TA_CDLEVENINGDOJISTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLEVENINGDOJISTAR_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLEVENINGSTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLEVENINGSTAR_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLGAPSIDESIDEWHITE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLGAPSIDESIDEWHITE_Lookback()\n    TA_RetCode TA_CDLGRAVESTONEDOJI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLGRAVESTONEDOJI_Lookback()\n    TA_RetCode TA_CDLHAMMER(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHAMMER_Lookback()\n    TA_RetCode TA_CDLHANGINGMAN(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHANGINGMAN_Lookback()\n    TA_RetCode TA_CDLHARAMI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHARAMI_Lookback()\n    TA_RetCode TA_CDLHARAMICROSS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHARAMICROSS_Lookback()\n    TA_RetCode TA_CDLHIGHWAVE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHIGHWAVE_Lookback()\n    TA_RetCode TA_CDLHIKKAKE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHIKKAKE_Lookback()\n    TA_RetCode TA_CDLHIKKAKEMOD(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHIKKAKEMOD_Lookback()\n    TA_RetCode TA_CDLHOMINGPIGEON(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLHOMINGPIGEON_Lookback()\n    TA_RetCode TA_CDLIDENTICAL3CROWS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLIDENTICAL3CROWS_Lookback()\n    TA_RetCode TA_CDLINNECK(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLINNECK_Lookback()\n    TA_RetCode TA_CDLINVERTEDHAMMER(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLINVERTEDHAMMER_Lookback()\n    TA_RetCode TA_CDLKICKING(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLKICKING_Lookback()\n    TA_RetCode TA_CDLKICKINGBYLENGTH(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLKICKINGBYLENGTH_Lookback()\n    TA_RetCode TA_CDLLADDERBOTTOM(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLLADDERBOTTOM_Lookback()\n    TA_RetCode TA_CDLLONGLEGGEDDOJI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLLONGLEGGEDDOJI_Lookback()\n    TA_RetCode TA_CDLLONGLINE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLLONGLINE_Lookback()\n    TA_RetCode TA_CDLMARUBOZU(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLMARUBOZU_Lookback()\n    TA_RetCode TA_CDLMATCHINGLOW(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLMATCHINGLOW_Lookback()\n    TA_RetCode TA_CDLMATHOLD(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLMATHOLD_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLMORNINGDOJISTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLMORNINGDOJISTAR_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLMORNINGSTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInPenetration, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLMORNINGSTAR_Lookback(double optInPenetration)\n    TA_RetCode TA_CDLONNECK(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLONNECK_Lookback()\n    TA_RetCode TA_CDLPIERCING(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLPIERCING_Lookback()\n    TA_RetCode TA_CDLRICKSHAWMAN(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLRICKSHAWMAN_Lookback()\n    TA_RetCode TA_CDLRISEFALL3METHODS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLRISEFALL3METHODS_Lookback()\n    TA_RetCode TA_CDLSEPARATINGLINES(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSEPARATINGLINES_Lookback()\n    TA_RetCode TA_CDLSHOOTINGSTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSHOOTINGSTAR_Lookback()\n    TA_RetCode TA_CDLSHORTLINE(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSHORTLINE_Lookback()\n    TA_RetCode TA_CDLSPINNINGTOP(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSPINNINGTOP_Lookback()\n    TA_RetCode TA_CDLSTALLEDPATTERN(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSTALLEDPATTERN_Lookback()\n    TA_RetCode TA_CDLSTICKSANDWICH(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLSTICKSANDWICH_Lookback()\n    TA_RetCode TA_CDLTAKURI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLTAKURI_Lookback()\n    TA_RetCode TA_CDLTASUKIGAP(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLTASUKIGAP_Lookback()\n    TA_RetCode TA_CDLTHRUSTING(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLTHRUSTING_Lookback()\n    TA_RetCode TA_CDLTRISTAR(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLTRISTAR_Lookback()\n    TA_RetCode TA_CDLUNIQUE3RIVER(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLUNIQUE3RIVER_Lookback()\n    TA_RetCode TA_CDLUPSIDEGAP2CROWS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLUPSIDEGAP2CROWS_Lookback()\n    TA_RetCode TA_CDLXSIDEGAP3METHODS(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_CDLXSIDEGAP3METHODS_Lookback()\n    TA_RetCode TA_CEIL(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_CEIL_Lookback()\n    TA_RetCode TA_CMO(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_CMO_Lookback(int optInTimePeriod)\n    TA_RetCode TA_CORREL(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_CORREL_Lookback(int optInTimePeriod)\n    TA_RetCode TA_COS(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_COS_Lookback()\n    TA_RetCode TA_COSH(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_COSH_Lookback()\n    TA_RetCode TA_DEMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_DEMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_DIV(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_DIV_Lookback()\n    TA_RetCode TA_DX(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_DX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_EMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_EMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_EXP(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_EXP_Lookback()\n    TA_RetCode TA_FLOOR(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_FLOOR_Lookback()\n    TA_RetCode TA_HT_DCPERIOD(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_HT_DCPERIOD_Lookback()\n    TA_RetCode TA_HT_DCPHASE(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_HT_DCPHASE_Lookback()\n    TA_RetCode TA_HT_PHASOR(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outInPhase[], double outQuadrature[])\n    int TA_HT_PHASOR_Lookback()\n    TA_RetCode TA_HT_SINE(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outSine[], double outLeadSine[])\n    int TA_HT_SINE_Lookback()\n    TA_RetCode TA_HT_TRENDLINE(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_HT_TRENDLINE_Lookback()\n    TA_RetCode TA_HT_TRENDMODE(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_HT_TRENDMODE_Lookback()\n    TA_RetCode TA_IMI(int startIdx, int endIdx, const double inOpen[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_IMI_Lookback(int optInTimePeriod)\n    TA_RetCode TA_KAMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_KAMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_LINEARREG(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LINEARREG_Lookback(int optInTimePeriod)\n    TA_RetCode TA_LINEARREG_ANGLE(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LINEARREG_ANGLE_Lookback(int optInTimePeriod)\n    TA_RetCode TA_LINEARREG_INTERCEPT(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LINEARREG_INTERCEPT_Lookback(int optInTimePeriod)\n    TA_RetCode TA_LINEARREG_SLOPE(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LINEARREG_SLOPE_Lookback(int optInTimePeriod)\n    TA_RetCode TA_LN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LN_Lookback()\n    TA_RetCode TA_LOG10(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_LOG10_Lookback()\n    TA_RetCode TA_MA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MA_Lookback(int optInTimePeriod, TA_MAType optInMAType)\n    TA_RetCode TA_MACD(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outMACD[], double outMACDSignal[], double outMACDHist[])\n    int TA_MACD_Lookback(int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod)\n    TA_RetCode TA_MACDEXT(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, TA_MAType optInFastMAType, int optInSlowPeriod, TA_MAType optInSlowMAType, int optInSignalPeriod, TA_MAType optInSignalMAType, int *outBegIdx, int *outNBElement, double outMACD[], double outMACDSignal[], double outMACDHist[])\n    int TA_MACDEXT_Lookback(int optInFastPeriod, TA_MAType optInFastMAType, int optInSlowPeriod, TA_MAType optInSlowMAType, int optInSignalPeriod, TA_MAType optInSignalMAType)\n    TA_RetCode TA_MACDFIX(int startIdx, int endIdx, const double inReal[], int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outMACD[], double outMACDSignal[], double outMACDHist[])\n    int TA_MACDFIX_Lookback(int optInSignalPeriod)\n    TA_RetCode TA_MAMA(int startIdx, int endIdx, const double inReal[], double optInFastLimit, double optInSlowLimit, int *outBegIdx, int *outNBElement, double outMAMA[], double outFAMA[])\n    int TA_MAMA_Lookback(double optInFastLimit, double optInSlowLimit)\n    TA_RetCode TA_MAVP(int startIdx, int endIdx, const double inReal[], const double inPeriods[], int optInMinPeriod, int optInMaxPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MAVP_Lookback(int optInMinPeriod, int optInMaxPeriod, TA_MAType optInMAType)\n    TA_RetCode TA_MAX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MAX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MAXINDEX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_MAXINDEX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MEDPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MEDPRICE_Lookback()\n    TA_RetCode TA_MFI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MFI_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MIDPOINT(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MIDPOINT_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MIDPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MIDPRICE_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MIN(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MIN_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MININDEX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, int outInteger[])\n    int TA_MININDEX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MINMAX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outMin[], double outMax[])\n    int TA_MINMAX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MINMAXINDEX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, int outMinIdx[], int outMaxIdx[])\n    int TA_MINMAXINDEX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MINUS_DI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MINUS_DI_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MINUS_DM(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MINUS_DM_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MOM(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MOM_Lookback(int optInTimePeriod)\n    TA_RetCode TA_MULT(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_MULT_Lookback()\n    TA_RetCode TA_NATR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_NATR_Lookback(int optInTimePeriod)\n    TA_RetCode TA_OBV(int startIdx, int endIdx, const double inReal[], const double inVolume[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_OBV_Lookback()\n    TA_RetCode TA_PLUS_DI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_PLUS_DI_Lookback(int optInTimePeriod)\n    TA_RetCode TA_PLUS_DM(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_PLUS_DM_Lookback(int optInTimePeriod)\n    TA_RetCode TA_PPO(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_PPO_Lookback(int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType)\n    TA_RetCode TA_ROC(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ROC_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ROCP(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ROCP_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ROCR(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ROCR_Lookback(int optInTimePeriod)\n    TA_RetCode TA_ROCR100(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ROCR100_Lookback(int optInTimePeriod)\n    TA_RetCode TA_RSI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) nogil\n    int TA_RSI_Lookback(int optInTimePeriod) nogil\n    TA_RetCode TA_SAR(int startIdx, int endIdx, const double inHigh[], const double inLow[], double optInAcceleration, double optInMaximum, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SAR_Lookback(double optInAcceleration, double optInMaximum)\n    TA_RetCode TA_SAREXT(int startIdx, int endIdx, const double inHigh[], const double inLow[], double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SAREXT_Lookback(double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort)\n    TA_RetCode TA_SIN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SIN_Lookback()\n    TA_RetCode TA_SINH(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SINH_Lookback()\n    TA_RetCode TA_SMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_SQRT(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SQRT_Lookback()\n    TA_RetCode TA_STDDEV(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDev, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_STDDEV_Lookback(int optInTimePeriod, double optInNbDev)\n    TA_RetCode TA_STOCH(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, int *outBegIdx, int *outNBElement, double outSlowK[], double outSlowD[])\n    int TA_STOCH_Lookback(int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType)\n    TA_RetCode TA_STOCHF(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, int *outBegIdx, int *outNBElement, double outFastK[], double outFastD[])\n    int TA_STOCHF_Lookback(int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType)\n    TA_RetCode TA_STOCHRSI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, int *outBegIdx, int *outNBElement, double outFastK[], double outFastD[])\n    int TA_STOCHRSI_Lookback(int optInTimePeriod, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType)\n    TA_RetCode TA_SUB(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SUB_Lookback()\n    TA_RetCode TA_SUM(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_SUM_Lookback(int optInTimePeriod)\n    TA_RetCode TA_T3(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInVFactor, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_T3_Lookback(int optInTimePeriod, double optInVFactor)\n    TA_RetCode TA_TAN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TAN_Lookback()\n    TA_RetCode TA_TANH(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TANH_Lookback()\n    TA_RetCode TA_TEMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TEMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_TRANGE(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TRANGE_Lookback()\n    TA_RetCode TA_TRIMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TRIMA_Lookback(int optInTimePeriod)\n    TA_RetCode TA_TRIX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TRIX_Lookback(int optInTimePeriod)\n    TA_RetCode TA_TSF(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TSF_Lookback(int optInTimePeriod)\n    TA_RetCode TA_TYPPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_TYPPRICE_Lookback()\n    TA_RetCode TA_ULTOSC(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod1, int optInTimePeriod2, int optInTimePeriod3, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_ULTOSC_Lookback(int optInTimePeriod1, int optInTimePeriod2, int optInTimePeriod3)\n    TA_RetCode TA_VAR(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDev, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_VAR_Lookback(int optInTimePeriod, double optInNbDev)\n    TA_RetCode TA_WCLPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_WCLPRICE_Lookback()\n    TA_RetCode TA_WILLR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_WILLR_Lookback(int optInTimePeriod)\n    TA_RetCode TA_WMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[])\n    int TA_WMA_Lookback(int optInTimePeriod)\n\n    # TALIB functions for TA_SetUnstablePeriod\n    TA_RetCode TA_SetUnstablePeriod(TA_FuncUnstId id, unsigned int unstablePeriod)\n    unsigned int TA_GetUnstablePeriod(TA_FuncUnstId id)\n\n    # TALIB functions for TA_SetCompatibility\n    TA_RetCode TA_SetCompatibility(TA_Compatibility value)\n    TA_Compatibility TA_GetCompatibility()\n\n    # TALIB functions for TA_SetCandleSettings\n    TA_RetCode TA_SetCandleSettings(TA_CandleSettingType settingType, TA_RangeType rangeType, int avgPeriod, double factor)\n    TA_RetCode TA_RestoreCandleDefaultSettings(TA_CandleSettingType)\n"
  },
  {
    "path": "talib/_ta_lib.pyi",
    "content": "import numpy as np\nfrom enum import Enum\nfrom typing import Tuple\nfrom numpy.typing import NDArray\n\nclass MA_Type(Enum):\n    SMA = 0\n    EMA = 1\n    WMA = 2\n    DEMA = 3\n    TEMA = 4\n    TRIMA = 5\n    KAMA = 6\n    MAMA = 7\n    T3 = 8\n\n#Overlap Studies Functions\n\ndef BBANDS(\n        real: NDArray[np.float64],  \n        timeperiod: int= 5, \n        nbdevup: float= 2, \n        nbdevdn: float= 2, \n        matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef DEMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef EMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef HT_TRENDLINE(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef KAMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef MA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30,\n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef MAMA(\n        real: NDArray[np.float64], \n        fastlimit: float= 0, \n        slowlimit: float= 0\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MAVP(\n        real: NDArray[np.float64], \n        periods: float, \n        minperiod: int= 2, \n        maxperiod: int= 30, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef MIDPOINT(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef MIDPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef SAR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        acceleration: float= 0, \n        maximum: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef SAREXT(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        startvalue: float= 0, \n        offsetonreverse: float= 0, \n        accelerationinitlong: float= 0, \n        accelerationlong: float= 0, \n        accelerationmaxlong: float= 0, \n        accelerationinitshort: float= 0, \n        accelerationshort: float= 0, \n        accelerationmaxshort: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef SMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef T3(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        vfactor: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef TEMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef TRIMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef WMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\n#Momentum Indicator Functions\n\ndef ADX(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef ADXR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef APO(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef AROON(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef AROONOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef BOP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef CCI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef CMO(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef DX(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef MACD(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        signalperiod: int= 9\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MACDEXT(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        fastmatype: MA_Type = MA_Type.SMA, \n        slowperiod: int= 26, \n        slowmatype: MA_Type = MA_Type.SMA, \n        signalperiod: int= 9, \n        signalmatype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MACDFIX(\n        real: NDArray[np.float64], \n        signalperiod: int= 9\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MFI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef MINUS_DI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef MINUS_DM(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef MOM(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef PLUS_DI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef PLUS_DM(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef PPO(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef ROC(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef ROCP(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef ROCR(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef ROCR100(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef RSI(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef STOCH(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        fastk_period: int= 5, \n        slowk_period: int= 3, \n        slowk_matype: MA_Type = MA_Type.SMA, \n        slowd_period: int= 3, \n        slowd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef STOCHF(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        fastk_period: int= 5, \n        fastd_period: int= 3, \n        fastd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef STOCHRSI(\n        real: NDArray[np.float64], \n        timeperiod: int= 14, \n        fastk_period: int= 5, \n        fastd_period: int= 3, \n        fastd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef TRIX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef ULTOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod1: int= 7, \n        timeperiod2: int= 14, \n        timeperiod3: int= 28\n        )-> NDArray[np.float64]: ...\n\ndef WILLR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\n#Volume Indicator Functions\n\ndef AD(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef ADOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64], \n        fastperiod: int= 3, \n        slowperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef OBV(\n        close: NDArray[np.float64], \n        volume: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n#Volatility Indicator Functions\n\ndef ATR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef NATR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef TRANGE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n# Price Transform Functions\n\ndef AVGPRICE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef MEDPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef TYPPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef WCLPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n# Cycle Indicator Functions\n\ndef HT_DCPERIOD(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef HT_DCPHASE(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef HT_PHASOR(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef HT_SINE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef HT_TRENDMODE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ...\n\n#Pattern Recognition Functions\n\ndef CDL2CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3BLACKCROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3INSIDE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3LINESTRIKE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3OUTSIDE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3STARSINSOUTH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDL3WHITESOLDIERS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLABANDONEDBABY(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLADVANCEBLOCK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLBELTHOLD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLBREAKAWAY(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLCLOSINGMARUBOZU(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLCONCEALBABYSWALL(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLCOUNTERATTACK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLDARKCLOUDCOVER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLDRAGONFLYDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLENGULFING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLEVENINGDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLEVENINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLGAPSIDESIDEWHITE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLGRAVESTONEDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHAMMER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHANGINGMAN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHARAMI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHARAMICROSS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHIGHWAVE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHIKKAKE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHIKKAKEMOD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLHOMINGPIGEON(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLIDENTICAL3CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLINNECK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLINVERTEDHAMMER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLKICKING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLKICKINGBYLENGTH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLLADDERBOTTOM(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLLONGLEGGEDDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLLONGLINE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLMARUBOZU(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLMATCHINGLOW(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLMATHOLD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLMORNINGDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLMORNINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef CDLONNECK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLPIERCING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLRICKSHAWMAN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLRISEFALL3METHODS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSEPARATINGLINES(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSHOOTINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSHORTLINE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSPINNINGTOP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSTALLEDPATTERN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLSTICKSANDWICH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLTAKURI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLTASUKIGAP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLTHRUSTING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLTRISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLUNIQUE3RIVER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLUPSIDEGAP2CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef CDLXSIDEGAP3METHODS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\n# Statistic Functions\n\ndef BETA(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64], \n        timeperiod: int= 5\n        )-> NDArray[np.float64]: ...\n\ndef CORREL(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef LINEARREG(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef LINEARREG_ANGLE(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef LINEARREG_INTERCEPT(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef LINEARREG_SLOPE(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef STDDEV(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        nbdev: float= 1\n        )-> NDArray[np.float64]: ...\n\ndef TSF(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef VAR(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        nbdev: float= 1\n        )-> NDArray[np.float64]: ...\n\n# Math Transform Functions\n\ndef ACOS(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef ASIN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef ATAN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef CEIL(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef COS(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef COSH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef EXP(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef FLOOR(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef LN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef LOG10(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef SIN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef SINH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef SQRT(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef TAN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef TANH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\n#Math Operator Functions\n\ndef ADD(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef DIV(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef MAX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef MAXINDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.int32]: ...\n\ndef MIN(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef MININDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.int32]: ...\n\ndef MINMAX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MINMAXINDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef MULT(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef SUB(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef SUM(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef ACCBANDS(\n        high: NDArray[np.float64],\n        low: NDArray[np.float64],\n        close: NDArray[np.float64],\n        timeperiod: int= 20\n        )-> NDArray[np.float64]: ...\n\ndef AVGDEV(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef IMI(\n        open: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\n#Overlap Studies Functions\n\ndef stream_BBANDS(\n        real: NDArray[np.float64],  \n        timeperiod: int= 5, \n        nbdevup: float= 2, \n        nbdevdn: float= 2, \n        matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_DEMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_EMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_HT_TRENDLINE(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_KAMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_MA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30,\n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef stream_MAMA(\n        real: NDArray[np.float64], \n        fastlimit: float= 0, \n        slowlimit: float= 0\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MAVP(\n        real: NDArray[np.float64], \n        periods: float, \n        minperiod: int= 2, \n        maxperiod: int= 30, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef stream_MIDPOINT(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_MIDPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_SAR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        acceleration: float= 0, \n        maximum: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef stream_SAREXT(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        startvalue: float= 0, \n        offsetonreverse: float= 0, \n        accelerationinitlong: float= 0, \n        accelerationlong: float= 0, \n        accelerationmaxlong: float= 0, \n        accelerationinitshort: float= 0, \n        accelerationshort: float= 0, \n        accelerationmaxshort: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef stream_SMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_T3(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        vfactor: float= 0\n        )-> NDArray[np.float64]: ...\n\ndef stream_TEMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_TRIMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_WMA(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\n#Momentum Indicator Functions\n\ndef stream_ADX(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_ADXR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_APO(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef stream_AROON(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_AROONOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_BOP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_CCI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_CMO(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_DX(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_MACD(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        signalperiod: int= 9\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MACDEXT(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        fastmatype: MA_Type = MA_Type.SMA, \n        slowperiod: int= 26, \n        slowmatype: MA_Type = MA_Type.SMA, \n        signalperiod: int= 9, \n        signalmatype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MACDFIX(\n        real: NDArray[np.float64], \n        signalperiod: int= 9\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MFI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_MINUS_DI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_MINUS_DM(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_MOM(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_PLUS_DI(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_PLUS_DM(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_PPO(\n        real: NDArray[np.float64], \n        fastperiod: int= 12, \n        slowperiod: int= 26, \n        matype: MA_Type = MA_Type.SMA\n        )-> NDArray[np.float64]: ...\n\ndef stream_ROC(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_ROCP(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_ROCR(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_ROCR100(\n        real: NDArray[np.float64], \n        timeperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_RSI(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_STOCH(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        fastk_period: int= 5, \n        slowk_period: int= 3, \n        slowk_matype: MA_Type = MA_Type.SMA, \n        slowd_period: int= 3, \n        slowd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_STOCHF(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        fastk_period: int= 5, \n        fastd_period: int= 3, \n        fastd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_STOCHRSI(\n        real: NDArray[np.float64], \n        timeperiod: int= 14, \n        fastk_period: int= 5, \n        fastd_period: int= 3, \n        fastd_matype: MA_Type = MA_Type.SMA\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_TRIX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_ULTOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod1: int= 7, \n        timeperiod2: int= 14, \n        timeperiod3: int= 28\n        )-> NDArray[np.float64]: ...\n\ndef stream_WILLR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\n#Volume Indicator Functions\n\ndef stream_AD(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_ADOSC(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        volume: NDArray[np.float64], \n        fastperiod: int= 3, \n        slowperiod: int= 10\n        )-> NDArray[np.float64]: ...\n\ndef stream_OBV(\n        close: NDArray[np.float64], \n        volume: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n#Volatility Indicator Functions\n\ndef stream_ATR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_NATR(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_TRANGE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n# Price Transform Functions\n\ndef stream_AVGPRICE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_MEDPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_TYPPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_WCLPRICE(\n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\n# Cycle Indicator Functions\n\ndef stream_HT_DCPERIOD(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_HT_DCPHASE(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_HT_PHASOR(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_HT_SINE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_HT_TRENDMODE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ...\n\n#Pattern Recognition Functions\n\ndef stream_CDL2CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3BLACKCROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3INSIDE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3LINESTRIKE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3OUTSIDE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3STARSINSOUTH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDL3WHITESOLDIERS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLABANDONEDBABY(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLADVANCEBLOCK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLBELTHOLD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLBREAKAWAY(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLCLOSINGMARUBOZU(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLCONCEALBABYSWALL(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLCOUNTERATTACK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLDARKCLOUDCOVER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLDRAGONFLYDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLENGULFING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLEVENINGDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLEVENINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLGAPSIDESIDEWHITE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLGRAVESTONEDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHAMMER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHANGINGMAN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHARAMI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHARAMICROSS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHIGHWAVE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHIKKAKE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHIKKAKEMOD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLHOMINGPIGEON(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLIDENTICAL3CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLINNECK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLINVERTEDHAMMER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLKICKING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLKICKINGBYLENGTH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLLADDERBOTTOM(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLLONGLEGGEDDOJI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLLONGLINE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLMARUBOZU(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLMATCHINGLOW(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLMATHOLD(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLMORNINGDOJISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLMORNINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64],\n        penetration: float= 0\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLONNECK(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLPIERCING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLRICKSHAWMAN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLRISEFALL3METHODS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSEPARATINGLINES(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSHOOTINGSTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSHORTLINE(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSPINNINGTOP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSTALLEDPATTERN(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLSTICKSANDWICH(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLTAKURI(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLTASUKIGAP(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLTHRUSTING(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLTRISTAR(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLUNIQUE3RIVER(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLUPSIDEGAP2CROWS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\ndef stream_CDLXSIDEGAP3METHODS(\n        open: NDArray[np.float64], \n        high: NDArray[np.float64], \n        low: NDArray[np.float64], \n        close: NDArray[np.float64]\n        )-> NDArray[np.int32]: ...\n\n# Statistic Functions\n\ndef stream_BETA(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64], \n        timeperiod: int= 5\n        )-> NDArray[np.float64]: ...\n\ndef stream_CORREL(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_LINEARREG(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_LINEARREG_ANGLE(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_LINEARREG_INTERCEPT(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_LINEARREG_SLOPE(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_STDDEV(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        nbdev: float= 1\n        )-> NDArray[np.float64]: ...\n\ndef stream_TSF(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_VAR(\n        real: NDArray[np.float64], \n        timeperiod: int= 5, \n        nbdev: float= 1\n        )-> NDArray[np.float64]: ...\n\n# Math Transform Functions\n\ndef stream_ACOS(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_ASIN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_ATAN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_CEIL(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_COS(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_COSH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_EXP(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_FLOOR(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_LN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_LOG10(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_SIN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_SINH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_SQRT(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_TAN(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\ndef stream_TANH(real: NDArray[np.float64])-> NDArray[np.float64]: ...\n\n#Math Operator Functions\n\ndef stream_ADD(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_DIV(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_MAX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_MAXINDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.int32]: ...\n\ndef stream_MIN(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_MININDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.int32]: ...\n\ndef stream_MINMAX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MINMAXINDEX(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ...\n\ndef stream_MULT(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_SUB(\n        real0: NDArray[np.float64], \n        real1: NDArray[np.float64]\n        )-> NDArray[np.float64]: ...\n\ndef stream_SUM(\n        real: NDArray[np.float64], \n        timeperiod: int= 30\n        )-> NDArray[np.float64]: ...\n\ndef stream_ACCBANDS(\n        high: NDArray[np.float64],\n        low: NDArray[np.float64],\n        close: NDArray[np.float64],\n        timeperiod: int= 20\n        )-> NDArray[np.float64]: ...\n\ndef stream_AVGDEV(\n        real: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n\ndef stream_IMI(\n        open: NDArray[np.float64], \n        close: NDArray[np.float64], \n        timeperiod: int= 14\n        )-> NDArray[np.float64]: ...\n"
  },
  {
    "path": "talib/_ta_lib.pyx",
    "content": "#cython: embedsignature=True, emit_code_comments=False\n\ninclude \"_common.pxi\"\ninclude \"_func.pxi\"\ninclude \"_abstract.pxi\"\ninclude \"_stream.pxi\"\n\n__all__ = __TA_FUNCTION_NAMES__ + [\"stream_%s\" % name for name in __TA_FUNCTION_NAMES__]\n"
  },
  {
    "path": "talib/abstract.py",
    "content": "import talib._ta_lib as _ta_lib\nfrom ._ta_lib import Function as _Function, __TA_FUNCTION_NAMES__, _get_defaults_and_docs\n\n# add some backwards compat for backtrader\nfrom ._ta_lib import TA_FUNC_FLAGS, TA_INPUT_FLAGS, TA_OUTPUT_FLAGS\n\n_func_obj_mapping = {\n    func_name: getattr(_ta_lib, func_name)\n    for func_name in __TA_FUNCTION_NAMES__\n}\n\n\ndef Function(function_name, *args, **kwargs):\n    func_name = function_name.upper()\n    if func_name not in _func_obj_mapping:\n        raise Exception('%s not supported by TA-LIB.' % func_name)\n\n    return _Function(\n        func_name, _func_obj_mapping[func_name], *args, **kwargs\n    )\n\n\nfor func_name in __TA_FUNCTION_NAMES__:\n    globals()[func_name] = Function(func_name)\n\n\n__all__ = [\"Function\", \"_get_defaults_and_docs\"] + __TA_FUNCTION_NAMES__\n"
  },
  {
    "path": "talib/abstract.pyi",
    "content": "\nfrom typing import overload, Tuple, Union\nimport numpy as np\nimport pandas as pd\n\n\"\"\"HT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef HT_DCPERIOD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef HT_DCPERIOD(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"HT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef HT_DCPHASE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef HT_DCPHASE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"HT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    inphase\n    quadrature\"\"\"\n@overload\ndef HT_PHASOR(real: Union[pd.Series, np.ndarray]) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef HT_PHASOR(real: pd.DataFrame) -> pd.DataFrame: ...\n\n\"\"\"HT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    sine\n    leadsine\"\"\"\n@overload\ndef HT_SINE(real: Union[pd.Series, np.ndarray]) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef HT_SINE(real: pd.DataFrame) -> pd.DataFrame: ...\n\n\"\"\"HT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef HT_TRENDMODE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef HT_TRENDMODE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"ADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef ADD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef ADD(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"DIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef DIV(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef DIV(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"MAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef MAX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef MAX(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"MAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef MAXINDEX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef MAXINDEX(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"MIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef MIN(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef MIN(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"MININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef MININDEX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef MININDEX(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"MINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    min\n    max\"\"\"\n@overload\ndef MINMAX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef MINMAX(real: pd.DataFrame, timeperiod=30) -> pd.DataFrame: ...\n\n\"\"\"MINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    minidx\n    maxidx\"\"\"\n@overload\ndef MINMAXINDEX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef MINMAXINDEX(real: pd.DataFrame, timeperiod=30) -> pd.DataFrame: ...\n\n\"\"\"MULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef MULT(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef MULT(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"SUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef SUB(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef SUB(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"SUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef SUM(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef SUM(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"ACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef ACOS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef ACOS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"ASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef ASIN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef ASIN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"ATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef ATAN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef ATAN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef CEIL(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CEIL(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"COS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef COS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef COS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"COSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef COSH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef COSH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"EXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef EXP(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef EXP(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"FLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef FLOOR(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef FLOOR(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"LN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef LN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef LN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"LOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef LOG10(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef LOG10(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"SIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef SIN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef SIN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"SINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef SINH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef SINH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"SQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef SQRT(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef SQRT(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"TAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef TAN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef TAN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"TANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef TANH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef TANH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"ADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef ADX(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef ADX(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"ADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef ADXR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef ADXR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    fastperiod: 12\n    slowperiod: 26\n    matype: 0 (Simple Moving Average)\nOutputs:\n    real\"\"\"\n@overload\ndef APO(real: Union[pd.Series, np.ndarray], fastperiod=12, slowperiod=26, matype=0) -> np.ndarray: ...\n@overload\ndef APO(real: pd.DataFrame, fastperiod=12, slowperiod=26, matype=0) -> pd.Series: ...\n\n\"\"\"AROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    timeperiod: 14\nOutputs:\n    aroondown\n    aroonup\"\"\"\n@overload\ndef AROON(real: Union[pd.Series, np.ndarray], timeperiod=14) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef AROON(real: pd.DataFrame, timeperiod=14) -> pd.DataFrame: ...\n\n\"\"\"AROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef AROONOSC(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef AROONOSC(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"BOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    real\"\"\"\n@overload\ndef BOP(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef BOP(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef CCI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef CCI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"CMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef CMO(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef CMO(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"DX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef DX(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef DX(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    fastperiod: 12\n    slowperiod: 26\n    signalperiod: 9\nOutputs:\n    macd\n    macdsignal\n    macdhist\"\"\"\n@overload\ndef MACD(real: Union[pd.Series, np.ndarray], fastperiod=12, slowperiod=26, signalperiod=9) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...\n@overload\ndef MACD(real: pd.DataFrame, fastperiod=12, slowperiod=26, signalperiod=9) -> pd.DataFrame: ...\n\n\"\"\"MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    fastperiod: 12\n    fastmatype: 0\n    slowperiod: 26\n    slowmatype: 0\n    signalperiod: 9\n    signalmatype: 0\nOutputs:\n    macd\n    macdsignal\n    macdhist\"\"\"\n@overload\ndef MACDEXT(real: Union[pd.Series, np.ndarray], fastperiod=12, fastmatype=0, slowperiod=26, slowmatype=0, signalperiod=9, signalmatype=0) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...\n@overload\ndef MACDEXT(real: pd.DataFrame, fastperiod=12, fastmatype=0, slowperiod=26, slowmatype=0, signalperiod=9, signalmatype=0) -> pd.DataFrame: ...\n\n\"\"\"MACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    signalperiod: 9\nOutputs:\n    macd\n    macdsignal\n    macdhist\"\"\"\n@overload\ndef MACDFIX(real: Union[pd.Series, np.ndarray], signalperiod=9) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...\n@overload\ndef MACDFIX(real: pd.DataFrame, signalperiod=9) -> pd.DataFrame: ...\n\n\"\"\"MFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close', 'volume']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef MFI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef MFI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"MINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef MINUS_DI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef MINUS_DI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"MINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef MINUS_DM(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef MINUS_DM(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"MOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef MOM(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ...\n@overload\ndef MOM(real: pd.DataFrame, timeperiod=10) -> pd.Series: ...\n\n\"\"\"PLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef PLUS_DI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef PLUS_DI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"PLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef PLUS_DM(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef PLUS_DM(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    fastperiod: 12\n    slowperiod: 26\n    matype: 0 (Simple Moving Average)\nOutputs:\n    real\"\"\"\n@overload\ndef PPO(real: Union[pd.Series, np.ndarray], fastperiod=12, slowperiod=26, matype=0) -> np.ndarray: ...\n@overload\ndef PPO(real: pd.DataFrame, fastperiod=12, slowperiod=26, matype=0) -> pd.Series: ...\n\n\"\"\"ROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef ROC(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ...\n@overload\ndef ROC(real: pd.DataFrame, timeperiod=10) -> pd.Series: ...\n\n\"\"\"ROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef ROCP(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ...\n@overload\ndef ROCP(real: pd.DataFrame, timeperiod=10) -> pd.Series: ...\n\n\"\"\"ROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef ROCR(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ...\n@overload\ndef ROCR(real: pd.DataFrame, timeperiod=10) -> pd.Series: ...\n\n\"\"\"ROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef ROCR100(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ...\n@overload\ndef ROCR100(real: pd.DataFrame, timeperiod=10) -> pd.Series: ...\n\n\"\"\"RSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef RSI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef RSI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    fastk_period: 5\n    slowk_period: 3\n    slowk_matype: 0\n    slowd_period: 3\n    slowd_matype: 0\nOutputs:\n    slowk\n    slowd\"\"\"\n@overload\ndef STOCH(real: Union[pd.Series, np.ndarray], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef STOCH(real: pd.DataFrame, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) -> pd.DataFrame: ...\n\n\"\"\"STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    fastk_period: 5\n    fastd_period: 3\n    fastd_matype: 0\nOutputs:\n    fastk\n    fastd\"\"\"\n@overload\ndef STOCHF(real: Union[pd.Series, np.ndarray], fastk_period=5, fastd_period=3, fastd_matype=0) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef STOCHF(real: pd.DataFrame, fastk_period=5, fastd_period=3, fastd_matype=0) -> pd.DataFrame: ...\n\n\"\"\"STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\n    fastk_period: 5\n    fastd_period: 3\n    fastd_matype: 0\nOutputs:\n    fastk\n    fastd\"\"\"\n@overload\ndef STOCHRSI(real: Union[pd.Series, np.ndarray], timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef STOCHRSI(real: pd.DataFrame, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0) -> pd.DataFrame: ...\n\n\"\"\"TRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef TRIX(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef TRIX(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod1: 7\n    timeperiod2: 14\n    timeperiod3: 28\nOutputs:\n    real\"\"\"\n@overload\ndef ULTOSC(real: Union[pd.Series, np.ndarray], timeperiod1=7, timeperiod2=14, timeperiod3=28) -> np.ndarray: ...\n@overload\ndef ULTOSC(real: pd.DataFrame, timeperiod1=7, timeperiod2=14, timeperiod3=28) -> pd.Series: ...\n\n\"\"\"WILLR(high, low, close[, timeperiod=?])\n\nWilliams' %R (Momentum Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef WILLR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef WILLR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 5\n    nbdevup: 2.0\n    nbdevdn: 2.0\n    matype: 0 (Simple Moving Average)\nOutputs:\n    upperband\n    middleband\n    lowerband\"\"\"\n@overload\ndef BBANDS(real: Union[pd.Series, np.ndarray], timeperiod=5, nbdevup=2.0, nbdevdn=2.0, matype=0) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...\n@overload\ndef BBANDS(real: pd.DataFrame, timeperiod=5, nbdevup=2.0, nbdevdn=2.0, matype=0) -> pd.DataFrame: ...\n\n\"\"\"DEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef DEMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef DEMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"EMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef EMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef EMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"HT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nOutputs:\n    real\"\"\"\n@overload\ndef HT_TRENDLINE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef HT_TRENDLINE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"KAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef KAMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef KAMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"MA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\n    matype: 0 (Simple Moving Average)\nOutputs:\n    real\"\"\"\n@overload\ndef MA(real: Union[pd.Series, np.ndarray], timeperiod=30, matype=0) -> np.ndarray: ...\n@overload\ndef MA(real: pd.DataFrame, timeperiod=30, matype=0) -> pd.Series: ...\n\n\"\"\"MAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    fastlimit: 0.5\n    slowlimit: 0.05\nOutputs:\n    mama\n    fama\"\"\"\n@overload\ndef MAMA(real: Union[pd.Series, np.ndarray], fastlimit=0.5, slowlimit=0.05) -> Tuple[np.ndarray, np.ndarray]: ...\n@overload\ndef MAMA(real: pd.DataFrame, fastlimit=0.5, slowlimit=0.05) -> pd.DataFrame: ...\n\n\"\"\"MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\n    periods: (any ndarray)\nParameters:\n    minperiod: 2\n    maxperiod: 30\n    matype: 0 (Simple Moving Average)\nOutputs:\n    real\"\"\"\n@overload\ndef MAVP(real: Union[pd.Series, np.ndarray], minperiod=2, maxperiod=30, matype=0) -> np.ndarray: ...\n@overload\ndef MAVP(real: pd.DataFrame, minperiod=2, maxperiod=30, matype=0) -> pd.Series: ...\n\n\"\"\"MIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef MIDPOINT(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef MIDPOINT(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"MIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef MIDPRICE(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef MIDPRICE(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"SAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    acceleration: 0.02\n    maximum: 0.2\nOutputs:\n    real\"\"\"\n@overload\ndef SAR(real: Union[pd.Series, np.ndarray], acceleration=0.02, maximum=0.2) -> np.ndarray: ...\n@overload\ndef SAR(real: pd.DataFrame, acceleration=0.02, maximum=0.2) -> pd.Series: ...\n\n\"\"\"SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n    prices: ['high', 'low']\nParameters:\n    startvalue: 0.0\n    offsetonreverse: 0.0\n    accelerationinitlong: 0.02\n    accelerationlong: 0.02\n    accelerationmaxlong: 0.2\n    accelerationinitshort: 0.02\n    accelerationshort: 0.02\n    accelerationmaxshort: 0.2\nOutputs:\n    real\"\"\"\n@overload\ndef SAREXT(real: Union[pd.Series, np.ndarray], startvalue=0.0, offsetonreverse=0.0, accelerationinitlong=0.02, accelerationlong=0.02, accelerationmaxlong=0.2, accelerationinitshort=0.02, accelerationshort=0.02, accelerationmaxshort=0.2) -> np.ndarray: ...\n@overload\ndef SAREXT(real: pd.DataFrame, startvalue=0.0, offsetonreverse=0.0, accelerationinitlong=0.02, accelerationlong=0.02, accelerationmaxlong=0.2, accelerationinitshort=0.02, accelerationshort=0.02, accelerationmaxshort=0.2) -> pd.Series: ...\n\n\"\"\"SMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef SMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef SMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"T3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 5\n    vfactor: 0.7\nOutputs:\n    real\"\"\"\n@overload\ndef T3(real: Union[pd.Series, np.ndarray], timeperiod=5, vfactor=0.7) -> np.ndarray: ...\n@overload\ndef T3(real: pd.DataFrame, timeperiod=5, vfactor=0.7) -> pd.Series: ...\n\n\"\"\"TEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef TEMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef TEMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"TRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef TRIMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef TRIMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"WMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef WMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef WMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"CDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL2CROWS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL2CROWS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3BLACKCROWS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3BLACKCROWS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3INSIDE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3INSIDE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike  (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3LINESTRIKE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3LINESTRIKE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3OUTSIDE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3OUTSIDE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3STARSINSOUTH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3STARSINSOUTH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDL3WHITESOLDIERS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDL3WHITESOLDIERS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.3\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLABANDONEDBABY(real: Union[pd.Series, np.ndarray], penetration=0.3) -> np.ndarray: ...\n@overload\ndef CDLABANDONEDBABY(real: pd.DataFrame, penetration=0.3) -> pd.Series: ...\n\n\"\"\"CDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLADVANCEBLOCK(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLADVANCEBLOCK(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLBELTHOLD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLBELTHOLD(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLBREAKAWAY(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLBREAKAWAY(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLCLOSINGMARUBOZU(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLCLOSINGMARUBOZU(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLCONCEALBABYSWALL(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLCONCEALBABYSWALL(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLCOUNTERATTACK(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLCOUNTERATTACK(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.5\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLDARKCLOUDCOVER(real: Union[pd.Series, np.ndarray], penetration=0.5) -> np.ndarray: ...\n@overload\ndef CDLDARKCLOUDCOVER(real: pd.DataFrame, penetration=0.5) -> pd.Series: ...\n\n\"\"\"CDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLDOJI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLDOJI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLDOJISTAR(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLDOJISTAR(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLDRAGONFLYDOJI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLDRAGONFLYDOJI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLENGULFING(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLENGULFING(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.3\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLEVENINGDOJISTAR(real: Union[pd.Series, np.ndarray], penetration=0.3) -> np.ndarray: ...\n@overload\ndef CDLEVENINGDOJISTAR(real: pd.DataFrame, penetration=0.3) -> pd.Series: ...\n\n\"\"\"CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.3\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLEVENINGSTAR(real: Union[pd.Series, np.ndarray], penetration=0.3) -> np.ndarray: ...\n@overload\ndef CDLEVENINGSTAR(real: pd.DataFrame, penetration=0.3) -> pd.Series: ...\n\n\"\"\"CDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLGAPSIDESIDEWHITE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLGAPSIDESIDEWHITE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLGRAVESTONEDOJI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLGRAVESTONEDOJI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHAMMER(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHAMMER(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHANGINGMAN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHANGINGMAN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHARAMI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHARAMI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHARAMICROSS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHARAMICROSS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHIGHWAVE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHIGHWAVE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHIKKAKE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHIKKAKE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHIKKAKEMOD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHIKKAKEMOD(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLHOMINGPIGEON(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLHOMINGPIGEON(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLIDENTICAL3CROWS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLIDENTICAL3CROWS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLINNECK(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLINNECK(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLINVERTEDHAMMER(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLINVERTEDHAMMER(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLKICKING(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLKICKING(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLKICKINGBYLENGTH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLKICKINGBYLENGTH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLLADDERBOTTOM(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLLADDERBOTTOM(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLLONGLEGGEDDOJI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLLONGLEGGEDDOJI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLLONGLINE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLLONGLINE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLMARUBOZU(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLMARUBOZU(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLMATCHINGLOW(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLMATCHINGLOW(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.5\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLMATHOLD(real: Union[pd.Series, np.ndarray], penetration=0.5) -> np.ndarray: ...\n@overload\ndef CDLMATHOLD(real: pd.DataFrame, penetration=0.5) -> pd.Series: ...\n\n\"\"\"CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.3\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLMORNINGDOJISTAR(real: Union[pd.Series, np.ndarray], penetration=0.3) -> np.ndarray: ...\n@overload\ndef CDLMORNINGDOJISTAR(real: pd.DataFrame, penetration=0.3) -> pd.Series: ...\n\n\"\"\"CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nParameters:\n    penetration: 0.3\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLMORNINGSTAR(real: Union[pd.Series, np.ndarray], penetration=0.3) -> np.ndarray: ...\n@overload\ndef CDLMORNINGSTAR(real: pd.DataFrame, penetration=0.3) -> pd.Series: ...\n\n\"\"\"CDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLONNECK(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLONNECK(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLPIERCING(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLPIERCING(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLRICKSHAWMAN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLRICKSHAWMAN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLRISEFALL3METHODS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLRISEFALL3METHODS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSEPARATINGLINES(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSEPARATINGLINES(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSHOOTINGSTAR(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSHOOTINGSTAR(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSHORTLINE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSHORTLINE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSPINNINGTOP(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSPINNINGTOP(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSTALLEDPATTERN(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSTALLEDPATTERN(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLSTICKSANDWICH(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLSTICKSANDWICH(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLTAKURI(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLTAKURI(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLTASUKIGAP(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLTASUKIGAP(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLTHRUSTING(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLTHRUSTING(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLTRISTAR(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLTRISTAR(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLUNIQUE3RIVER(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLUNIQUE3RIVER(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLUPSIDEGAP2CROWS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLUPSIDEGAP2CROWS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"CDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    integer (values are -100, 0 or 100)\"\"\"\n@overload\ndef CDLXSIDEGAP3METHODS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef CDLXSIDEGAP3METHODS(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"AVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n    prices: ['open', 'high', 'low', 'close']\nOutputs:\n    real\"\"\"\n@overload\ndef AVGPRICE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef AVGPRICE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"MEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n    prices: ['high', 'low']\nOutputs:\n    real\"\"\"\n@overload\ndef MEDPRICE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef MEDPRICE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"TYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n    prices: ['high', 'low', 'close']\nOutputs:\n    real\"\"\"\n@overload\ndef TYPPRICE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef TYPPRICE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"WCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n    prices: ['high', 'low', 'close']\nOutputs:\n    real\"\"\"\n@overload\ndef WCLPRICE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef WCLPRICE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"BETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nParameters:\n    timeperiod: 5\nOutputs:\n    real\"\"\"\n@overload\ndef BETA(real: Union[pd.Series, np.ndarray], timeperiod=5) -> np.ndarray: ...\n@overload\ndef BETA(real: pd.DataFrame, timeperiod=5) -> pd.Series: ...\n\n\"\"\"CORREL(real0, real1[, timeperiod=?])\n\nPearson's Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n    real0: (any ndarray)\n    real1: (any ndarray)\nParameters:\n    timeperiod: 30\nOutputs:\n    real\"\"\"\n@overload\ndef CORREL(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ...\n@overload\ndef CORREL(real: pd.DataFrame, timeperiod=30) -> pd.Series: ...\n\n\"\"\"LINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef LINEARREG(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef LINEARREG(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"LINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef LINEARREG_ANGLE(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef LINEARREG_ANGLE(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"LINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef LINEARREG_INTERCEPT(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef LINEARREG_INTERCEPT(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"LINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef LINEARREG_SLOPE(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef LINEARREG_SLOPE(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"STDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 5\n    nbdev: 1.0\nOutputs:\n    real\"\"\"\n@overload\ndef STDDEV(real: Union[pd.Series, np.ndarray], timeperiod=5, nbdev=1.0) -> np.ndarray: ...\n@overload\ndef STDDEV(real: pd.DataFrame, timeperiod=5, nbdev=1.0) -> pd.Series: ...\n\n\"\"\"TSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef TSF(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef TSF(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"VAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n    real: (any ndarray)\nParameters:\n    timeperiod: 5\n    nbdev: 1.0\nOutputs:\n    real\"\"\"\n@overload\ndef VAR(real: Union[pd.Series, np.ndarray], timeperiod=5, nbdev=1.0) -> np.ndarray: ...\n@overload\ndef VAR(real: pd.DataFrame, timeperiod=5, nbdev=1.0) -> pd.Series: ...\n\n\"\"\"ATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef ATR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef ATR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"NATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nParameters:\n    timeperiod: 14\nOutputs:\n    real\"\"\"\n@overload\ndef NATR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ...\n@overload\ndef NATR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ...\n\n\"\"\"TRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close']\nOutputs:\n    real\"\"\"\n@overload\ndef TRANGE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef TRANGE(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"AD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close', 'volume']\nOutputs:\n    real\"\"\"\n@overload\ndef AD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef AD(real: pd.DataFrame) -> pd.Series: ...\n\n\"\"\"ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n    prices: ['high', 'low', 'close', 'volume']\nParameters:\n    fastperiod: 3\n    slowperiod: 10\nOutputs:\n    real\"\"\"\n@overload\ndef ADOSC(real: Union[pd.Series, np.ndarray], fastperiod=3, slowperiod=10) -> np.ndarray: ...\n@overload\ndef ADOSC(real: pd.DataFrame, fastperiod=3, slowperiod=10) -> pd.Series: ...\n\n\"\"\"OBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n    real: (any ndarray)\n    prices: ['volume']\nOutputs:\n    real\"\"\"\n@overload\ndef OBV(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ...\n@overload\ndef OBV(real: pd.DataFrame) -> pd.Series: ...\n\n"
  },
  {
    "path": "talib/common.pxd",
    "content": "from _ta_lib cimport TA_RetCode\ncpdef _ta_check_success(str function_name, TA_RetCode ret_code)\n"
  },
  {
    "path": "talib/deprecated.py",
    "content": "# TA_MAType enums\nMA_SMA, MA_EMA, MA_WMA, MA_DEMA, MA_TEMA, MA_TRIMA, MA_KAMA, MA_MAMA, MA_T3 = range(9)\n"
  },
  {
    "path": "talib/py.typed",
    "content": ""
  },
  {
    "path": "talib/stream.py",
    "content": "import talib._ta_lib as _ta_lib\nfrom ._ta_lib import __TA_FUNCTION_NAMES__\n\n\nfor func_name in __TA_FUNCTION_NAMES__:\n    globals()[func_name] = getattr(_ta_lib, \"stream_%s\" % func_name)\n"
  },
  {
    "path": "tests/conftest.py",
    "content": "import pytest\nimport numpy as np\n\n\n@pytest.fixture(scope='session')\ndef ford_2012_dates():\n    return np.asarray([\n        20120103, 20120104, 20120105, 20120106, 20120109,\n        20120110, 20120111, 20120112, 20120113, 20120117, 20120118, 20120119,\n        20120120, 20120123, 20120124, 20120125, 20120126, 20120127, 20120130,\n        20120131, 20120201, 20120202, 20120203, 20120206, 20120207, 20120208,\n        20120209, 20120210, 20120213, 20120214, 20120215, 20120216, 20120217,\n        20120221, 20120222, 20120223, 20120224, 20120227, 20120228, 20120229,\n        20120301, 20120302, 20120305, 20120306, 20120307, 20120308, 20120309,\n        20120312, 20120313, 20120314, 20120315, 20120316, 20120319, 20120320,\n        20120321, 20120322, 20120323, 20120326, 20120327, 20120328, 20120329,\n        20120330, 20120402, 20120403, 20120404, 20120405, 20120409, 20120410,\n        20120411, 20120412, 20120413, 20120416, 20120417, 20120418, 20120419,\n        20120420, 20120423, 20120424, 20120425, 20120426, 20120427, 20120430,\n        20120501, 20120502, 20120503, 20120504, 20120507, 20120508, 20120509,\n        20120510, 20120511, 20120514, 20120515, 20120516, 20120517, 20120518,\n        20120521, 20120522, 20120523, 20120524, 20120525, 20120529, 20120530,\n        20120531, 20120601, 20120604, 20120605, 20120606, 20120607, 20120608,\n        20120611, 20120612, 20120613, 20120614, 20120615, 20120618, 20120619,\n        20120620, 20120621, 20120622, 20120625, 20120626, 20120627, 20120628,\n        20120629, 20120702, 20120703, 20120705, 20120706, 20120709, 20120710,\n        20120711, 20120712, 20120713, 20120716, 20120717, 20120718, 20120719,\n        20120720, 20120723, 20120724, 20120725, 20120726, 20120727, 20120730,\n        20120731, 20120801, 20120802, 20120803, 20120806, 20120807, 20120808,\n        20120809, 20120810, 20120813, 20120814, 20120815, 20120816, 20120817,\n        20120820, 20120821, 20120822, 20120823, 20120824, 20120827, 20120828,\n        20120829, 20120830, 20120831, 20120904, 20120905, 20120906, 20120907,\n        20120910, 20120911, 20120912, 20120913, 20120914, 20120917, 20120918,\n        20120919, 20120920, 20120921, 20120924, 20120925, 20120926, 20120927,\n        20120928, 20121001, 20121002, 20121003, 20121004, 20121005, 20121008,\n        20121009, 20121010, 20121011, 20121012, 20121015, 20121016, 20121017,\n        20121018, 20121019, 20121022, 20121023, 20121024, 20121025, 20121026,\n        20121031, 20121101, 20121102, 20121105, 20121106, 20121107, 20121108,\n        20121109, 20121112, 20121113, 20121114, 20121115, 20121116, 20121119,\n        20121120, 20121121, 20121123, 20121126, 20121127, 20121128, 20121129,\n        20121130, 20121203, 20121204, 20121205, 20121206, 20121207, 20121210,\n        20121211, 20121212, 20121213, 20121214, 20121217, 20121218, 20121219,\n        20121220, 20121221, 20121224, 20121226, 20121227, 20121228, 20121231\n    ])\n\n\n@pytest.fixture(scope='session')\ndef ford_2012():\n    return {\n        'open': np.asarray([\n            11.00, 11.15, 11.33, 11.74, 11.83, 12.00, 11.74, 12.16, 12.01,\n            12.20, 12.03, 12.48, 12.55, 12.69, 12.56, 12.80, 13.03, 11.96,\n            12.06, 12.47, 12.73, 12.40, 12.47, 12.85, 12.93, 12.91, 12.89,\n            12.52, 12.74, 12.46, 12.47, 12.38, 12.84, 12.74, 12.49, 12.27,\n            12.43, 12.11, 12.34, 12.28, 12.48, 12.74, 12.67, 12.23, 12.21,\n            12.41, 12.53, 12.57, 12.48, 12.64, 12.90, 12.86, 12.52, 12.48,\n            12.59, 12.48, 12.31, 12.45, 12.51, 12.35, 12.33, 12.55, 12.50,\n            12.71, 12.46, 12.38, 12.26, 12.19, 11.99, 11.94, 11.98, 12.01,\n            11.98, 11.81, 11.81, 11.71, 11.15, 11.61, 11.51, 11.71, 12.03,\n            11.42, 11.25, 11.16, 11.13, 10.84, 10.53, 10.60, 10.48, 10.83,\n            10.61, 10.41, 10.34, 10.23, 10.16, 10.08, 10.02, 10.25, 10.32,\n            10.50, 10.61, 10.69, 10.73, 10.62, 10.33, 10.15, 10.01, 10.29,\n            10.73, 10.48, 10.77, 10.47, 10.39, 10.27, 10.40, 10.35, 10.37,\n            10.58, 10.65, 10.35, 10.13, 10.06, 10.05, 9.93, 9.95, 9.50, 9.53,\n            9.67, 9.47, 9.46, 9.50, 9.33, 9.26, 9.16, 9.22, 9.28, 9.38, 9.45,\n            9.28, 9.08, 9.17, 9.17, 9.05, 8.99, 9.04, 9.13, 9.29, 8.99, 9.02,\n            9.13, 9.18, 9.25, 9.31, 9.30, 9.35, 9.45, 9.44, 9.50, 9.65, 9.58,\n            9.65, 9.50, 9.45, 9.42, 9.51, 9.37, 9.33, 9.30, 9.39, 9.37, 9.45,\n            9.66, 9.95, 10.08, 10.18, 10.25, 10.20, 10.41, 10.27, 10.30, 10.49,\n            10.48, 10.53, 10.30, 10.35, 9.98, 10.13, 9.99, 9.89, 10.01, 9.82,\n            10.06, 10.17, 10.06, 10.21, 10.12, 10.06, 10.14, 10.11, 10.26,\n            10.31, 10.36, 10.42, 10.14, 10.02, 10.08, 10.42, 10.35, 10.70,\n            11.19, 11.31, 11.15, 11.33, 11.25, 11.07, 10.76, 11.03, 10.89,\n            11.02, 10.57, 10.58, 10.65, 10.85, 10.84, 10.98, 11.05, 11.10,\n            11.05, 11.32, 11.52, 11.56, 11.40, 11.32, 11.26, 11.27, 11.41,\n            11.51, 11.52, 11.46, 11.27, 11.16, 11.48, 11.79, 11.74, 11.55,\n            11.67, 12.31, 12.79, 12.55, 12.88\n        ]),\n        'high': np.asarray([\n            11.25, 11.53, 11.63, 11.80, 11.95, 12.05, 12.18, 12.18, 12.08,\n            12.26, 12.37, 12.72, 12.64, 12.84, 12.86, 12.98, 13.05, 12.53,\n            12.44, 12.51, 12.75, 12.43, 12.84, 13.00, 12.97, 12.96, 12.90,\n            12.66, 12.74, 12.58, 12.57, 12.77, 12.88, 12.76, 12.51, 12.44,\n            12.46, 12.36, 12.35, 12.55, 12.77, 12.94, 12.68, 12.25, 12.30,\n            12.55, 12.73, 12.59, 12.72, 12.90, 13.04, 12.90, 12.68, 12.61,\n            12.67, 12.54, 12.37, 12.50, 12.61, 12.36, 12.52, 12.58, 12.65,\n            12.95, 12.52, 12.58, 12.29, 12.28, 12.02, 12.13, 12.03, 12.05,\n            12.00, 11.85, 11.88, 11.72, 11.40, 11.61, 11.75, 11.93, 12.04,\n            11.47, 11.34, 11.17, 11.15, 10.87, 10.79, 10.64, 10.81, 10.86,\n            10.83, 10.53, 10.34, 10.43, 10.25, 10.18, 10.23, 10.40, 10.45,\n            10.62, 10.68, 10.88, 10.75, 10.68, 10.37, 10.18, 10.24, 10.58,\n            10.78, 10.68, 10.80, 10.55, 10.49, 10.45, 10.42, 10.40, 10.64,\n            10.74, 10.68, 10.40, 10.18, 10.08, 10.10, 10.09, 9.98, 9.60, 9.79,\n            9.74, 9.52, 9.47, 9.55, 9.38, 9.28, 9.32, 9.32, 9.35, 9.52, 9.50,\n            9.35, 9.21, 9.24, 9.20, 9.11, 9.10, 9.18, 9.28, 9.42, 9.03, 9.15,\n            9.21, 9.39, 9.38, 9.46, 9.36, 9.42, 9.66, 9.54, 9.67, 9.66, 9.64,\n            9.70, 9.56, 9.54, 9.52, 9.52, 9.44, 9.40, 9.34, 9.43, 9.47, 9.62,\n            9.96, 10.23, 10.28, 10.25, 10.30, 10.38, 10.57, 10.42, 10.45, 10.66,\n            10.52, 10.54, 10.40, 10.37, 10.12, 10.18, 10.00, 10.08, 10.05,\n            10.02, 10.15, 10.28, 10.12, 10.25, 10.12, 10.26, 10.25, 10.25,\n            10.32, 10.41, 10.57, 10.43, 10.24, 10.11, 10.29, 10.49, 10.42,\n            11.17, 11.30, 11.38, 11.35, 11.59, 11.34, 11.23, 11.10, 11.16,\n            11.10, 11.05, 10.80, 10.64, 10.90, 11.02, 11.00, 11.10, 11.14,\n            11.27, 11.26, 11.53, 11.60, 11.70, 11.44, 11.40, 11.31, 11.50,\n            11.53, 11.58, 11.56, 11.50, 11.27, 11.41, 11.68, 11.85, 11.80,\n            11.86, 12.40, 12.79, 12.81, 12.88, 13.08\n        ]),\n        'low': np.asarray([\n            10.99, 11.07, 11.24, 11.52, 11.70, 11.63, 11.65, 11.89, 11.84,\n            11.96, 12.00, 12.43, 12.45, 12.55, 12.46, 12.70, 12.66, 11.79,\n            12.00, 12.20, 12.29, 12.20, 12.39, 12.71, 12.83, 12.80, 12.67,\n            12.37, 12.51, 12.34, 12.33, 12.38, 12.71, 12.46, 12.22, 12.16,\n            12.19, 11.99, 12.20, 12.25, 12.45, 12.68, 12.41, 12.00, 12.15,\n            12.32, 12.48, 12.37, 12.40, 12.63, 12.83, 12.51, 12.48, 12.39,\n            12.55, 12.24, 12.18, 12.39, 12.30, 12.18, 12.24, 12.40, 12.44,\n            12.46, 12.32, 12.38, 12.11, 11.65, 11.88, 11.86, 11.84, 11.83,\n            11.88, 11.72, 11.58, 11.39, 11.15, 11.36, 11.43, 11.67, 11.52,\n            11.15, 11.11, 11.00, 10.85, 10.63, 10.52, 10.40, 10.41, 10.66,\n            10.56, 10.30, 10.10, 10.15, 10.01, 9.96, 10.00, 10.15, 10.22, 10.38,\n            10.51, 10.68, 10.52, 10.40, 10.06, 9.91, 9.97, 10.27, 10.52, 10.38,\n            10.45, 10.31, 10.22, 10.21, 10.26, 10.26, 10.35, 10.52, 10.25,\n            10.18, 9.95, 9.96, 9.97, 9.93, 9.46, 9.30, 9.49, 9.53, 9.40, 9.31,\n            9.28, 9.26, 9.12, 9.14, 9.15, 9.12, 9.34, 9.33, 9.18, 9.05, 8.95,\n            8.91, 8.83, 8.88, 9.01, 9.12, 8.99, 8.82, 8.96, 9.09, 9.18, 9.24,\n            9.30, 9.23, 9.25, 9.42, 9.41, 9.49, 9.60, 9.51, 9.52, 9.40, 9.42,\n            9.41, 9.38, 9.31, 9.29, 9.25, 9.31, 9.35, 9.39, 9.66, 9.93, 10.06,\n            10.13, 10.17, 10.12, 10.39, 10.26, 10.28, 10.45, 10.35, 10.36,\n            10.26, 10.06, 9.86, 10.02, 9.81, 9.88, 9.71, 9.76, 9.96, 10.13,\n            9.99, 10.02, 9.95, 10.05, 10.09, 10.09, 10.22, 10.26, 10.33, 10.13,\n            10.03, 9.97, 10.01, 10.28, 10.22, 10.60, 10.88, 11.15, 11.13, 11.26,\n            11.04, 10.89, 10.71, 10.96, 10.86, 10.62, 10.46, 10.38, 10.65,\n            10.76, 10.80, 10.96, 10.97, 11.10, 10.98, 11.32, 11.33, 11.40,\n            11.23, 11.18, 11.19, 11.26, 11.41, 11.40, 11.43, 11.21, 11.03,\n            11.14, 11.40, 11.62, 11.58, 11.47, 11.67, 12.31, 12.36, 12.52, 12.76\n        ]),\n        'close': np.asarray([\n            11.13, 11.30, 11.59, 11.71, 11.80, 11.80, 12.07, 12.14, 12.04,\n            12.02, 12.34, 12.61, 12.59, 12.66, 12.82, 12.93, 12.79, 12.21,\n            12.29, 12.42, 12.33, 12.26, 12.79, 12.96, 12.88, 12.84, 12.69,\n            12.44, 12.54, 12.48, 12.38, 12.74, 12.75, 12.53, 12.28, 12.40,\n            12.23, 12.30, 12.25, 12.38, 12.66, 12.72, 12.46, 12.09, 12.24,\n            12.46, 12.58, 12.43, 12.70, 12.88, 12.90, 12.51, 12.63, 12.54,\n            12.57, 12.32, 12.32, 12.48, 12.32, 12.32, 12.50, 12.48, 12.62,\n            12.64, 12.51, 12.47, 12.22, 11.79, 11.91, 12.07, 11.92, 11.88,\n            11.91, 11.79, 11.66, 11.41, 11.35, 11.39, 11.73, 11.87, 11.60,\n            11.28, 11.23, 11.10, 10.92, 10.67, 10.66, 10.61, 10.69, 10.71,\n            10.58, 10.32, 10.15, 10.16, 10.01, 10.01, 10.20, 10.19, 10.41,\n            10.59, 10.60, 10.84, 10.66, 10.56, 10.12, 10.04, 10.19, 10.57,\n            10.55, 10.66, 10.45, 10.50, 10.30, 10.41, 10.35, 10.34, 10.56,\n            10.65, 10.27, 10.19, 10.01, 10.01, 10.02, 10.09, 9.59, 9.39, 9.60,\n            9.57, 9.50, 9.45, 9.35, 9.33, 9.13, 9.27, 9.26, 9.34, 9.38, 9.35,\n            9.21, 9.17, 9.06, 8.97, 8.96, 9.00, 9.10, 9.24, 9.04, 8.92, 9.09,\n            9.15, 9.31, 9.35, 9.34, 9.35, 9.40, 9.44, 9.49, 9.59, 9.63, 9.63,\n            9.53, 9.49, 9.45, 9.49, 9.39, 9.34, 9.32, 9.31, 9.34, 9.41, 9.57,\n            9.92, 10.14, 10.11, 10.15, 10.21, 10.34, 10.53, 10.39, 10.42, 10.59,\n            10.44, 10.40, 10.32, 10.09, 10.01, 10.02, 9.86, 9.93, 9.79, 9.94,\n            10.11, 10.16, 10.05, 10.10, 9.98, 10.14, 10.12, 10.22, 10.30, 10.41,\n            10.43, 10.18, 10.17, 10.00, 10.17, 10.39, 10.36, 11.16, 11.25,\n            11.17, 11.25, 11.42, 11.06, 10.90, 10.93, 10.97, 11.00, 10.67,\n            10.57, 10.50, 10.83, 10.85, 10.92, 11.10, 11.11, 11.10, 11.25,\n            11.53, 11.45, 11.41, 11.31, 11.31, 11.24, 11.48, 11.47, 11.49,\n            11.47, 11.27, 11.10, 11.39, 11.67, 11.73, 11.77, 11.86, 12.40,\n            12.79, 12.76, 12.87, 12.95\n        ]),\n        'volume': np.asarray([\n            45709900, 79725200, 67877500, 59840700, 53981500, 121750600,\n            63806000, 48687700, 46366700, 44398400, 47102700, 70894200,\n            43705700, 49379700, 45768400, 54021600, 75470700, 142155300,\n            57752600, 46412100, 71669000, 48347600, 78851200, 46363300,\n            39413500, 35352500, 52290500, 52505500, 34474400, 39627900,\n            38174800, 49164400, 30778000, 38409800, 43326000, 36747600,\n            31399300, 38703400, 30789000, 62093700, 68262000, 49063500,\n            28433700, 57374500, 28440900, 37099100, 36159300, 30275700,\n            42783600, 47578500, 55286600, 77119600, 52445700, 40214400,\n            27521400, 50117100, 44755000, 26692200, 35070700, 41051700,\n            51039700, 36381000, 43966900, 97034200, 51505000, 37939500,\n            42515300, 77370300, 34724400, 26988800, 39675000, 31903500,\n            35981200, 32314000, 48169200, 52631000, 31269200, 38615200,\n            45185400, 40889300, 83070300, 46156300, 43959200, 48572900,\n            40238400, 53268400, 33235200, 46174500, 54501200, 42526100,\n            36561300, 50225200, 41886500, 44321300, 49648900, 50572000,\n            38134900, 44295700, 75647800, 45334100, 30430800, 43760600,\n            44592100, 54297000, 68237000, 57305600, 38326200, 50458000,\n            33846100, 30811600, 35811400, 35130800, 53471900, 37531800,\n            39442000, 27361000, 37155900, 40810100, 40062800, 56427300,\n            44297600, 31871900, 33278900, 38648400, 138138600, 63388600,\n            49629300, 31783900, 30355400, 37441600, 33516600, 32028700,\n            55111000, 30248300, 28838200, 29510000, 31010000, 33615000,\n            27968300, 33773800, 53519200, 44338200, 51798900, 67986800,\n            40958300, 41360900, 65973000, 45326500, 38631400, 23819100,\n            43574500, 22630300, 30909800, 19618800, 21122000, 21129500,\n            21308300, 34323700, 34533900, 38923800, 26281100, 26965500,\n            23537700, 19574600, 22754200, 23084400, 26115700, 16459400,\n            28029200, 37965000, 40608800, 67996400, 60617000, 43381300,\n            28165300, 28046500, 50920200, 55934300, 31922200, 34937000,\n            42403000, 28755100, 35459800, 28557900, 36866300, 44362600,\n            25740900, 44586300, 33445600, 63630000, 51023800, 46855500,\n            40693900, 25473900, 38235700, 33951600, 39328700, 24108500,\n            26466500, 32788400, 29346300, 44041700, 40493000, 39149700,\n            32476500, 49339800, 59290900, 43485500, 137960900, 88770100,\n            53399000, 37995000, 51232200, 56674900, 45948800, 40703600,\n            25723100, 33342900, 45664700, 48879800, 45346200, 39359100,\n            34739800, 21181700, 16032200, 26831700, 37610000, 38496900,\n            57289300, 41329600, 47746300, 37760200, 33152400, 31065800,\n            38404500, 26025200, 36326900, 31099900, 35443200, 36933500,\n            46983300, 61810400, 54884700, 47750100, 94489300, 91734900,\n            140331900, 108315100, 95668600, 106908900\n        ])\n    }\n\n\n@pytest.fixture(scope='session')\ndef series():\n    return np.array([\n        91.50, 94.81, 94.38, 95.09, 93.78, 94.62, 92.53, 92.75, 90.31, 92.47,\n        96.12, 97.25, 98.50, 89.88, 91.00, 92.81, 89.16, 89.34, 91.62, 89.88,\n        88.38, 87.62, 84.78, 83.00, 83.50, 81.38, 84.44, 89.25, 86.38, 86.25,\n        85.25, 87.12, 85.81, 88.97, 88.47, 86.88, 86.81, 84.88, 84.19, 83.88,\n        83.38, 85.50, 89.19, 89.44, 91.09, 90.75, 91.44, 89.00, 91.00, 90.50,\n        89.03, 88.81, 84.28, 83.50, 82.69, 84.75, 85.66, 86.19, 88.94, 89.28,\n        88.62, 88.50, 91.97, 91.50, 93.25, 93.50, 93.16, 91.72, 90.00, 89.69,\n        88.88, 85.19, 83.38, 84.88, 85.94, 97.25, 99.88, 104.94, 106.00, 102.50,\n        102.41, 104.59, 106.12, 106.00, 106.06, 104.62, 108.62, 109.31, 110.50,\n        112.75, 123.00, 119.62, 118.75, 119.25, 117.94, 116.44, 115.19, 111.88,\n        110.59, 118.12, 116.00, 116.00, 112.00, 113.75, 112.94, 116.00, 120.50,\n        116.62, 117.00, 115.25, 114.31, 115.50, 115.87, 120.69, 120.19, 120.75,\n        124.75, 123.37, 122.94, 122.56, 123.12, 122.56, 124.62, 129.25, 131.00,\n        132.25, 131.00, 132.81, 134.00, 137.38, 137.81, 137.88, 137.25, 136.31,\n        136.25, 134.63, 128.25, 129.00, 123.87, 124.81, 123.00, 126.25, 128.38,\n        125.37, 125.69, 122.25, 119.37, 118.50, 123.19, 123.50, 122.19, 119.31,\n        123.31, 121.12, 123.37, 127.37, 128.50, 123.87, 122.94, 121.75, 124.44,\n        122.00, 122.37, 122.94, 124.00, 123.19, 124.56, 127.25, 125.87, 128.86,\n        132.00, 130.75, 134.75, 135.00, 132.38, 133.31, 131.94, 130.00, 125.37,\n        130.13, 127.12, 125.19, 122.00, 125.00, 123.00, 123.50, 120.06, 121.00,\n        117.75, 119.87, 122.00, 119.19, 116.37, 113.50, 114.25, 110.00, 105.06,\n        107.00, 107.87, 107.00, 107.12, 107.00, 91.00, 93.94, 93.87, 95.50,\n        93.00, 94.94, 98.25, 96.75, 94.81, 94.37, 91.56, 90.25, 93.94, 93.62,\n        97.00, 95.00, 95.87, 94.06, 94.62, 93.75, 98.00, 103.94, 107.87, 106.06,\n        104.50, 105.00, 104.19, 103.06, 103.42, 105.27, 111.87, 116.00, 116.62,\n        118.28, 113.37, 109.00, 109.70, 109.25, 107.00, 109.19, 110.00, 109.20,\n        110.12, 108.00, 108.62, 109.75, 109.81, 109.00, 108.75, 107.87\n    ])"
  },
  {
    "path": "tests/test_abstract.py",
    "content": "import copy\nimport re\nimport threading\nimport time\n\nimport numpy as np\nimport pytest\nfrom numpy.testing import assert_array_equal, assert_raises\n\ntry:\n    from collections import OrderedDict\nexcept ImportError: # handle python 2.6 and earlier\n    from ordereddict import OrderedDict\n\nimport talib\nfrom talib import abstract, func\n\n\ndef assert_array_not_equal(x, y):\n    assert_raises(AssertionError, assert_array_equal, x, y)\n\n\ndef test_pararmeters():\n    parameters = abstract.MACD.parameters\n    assert all(type(v) == int for k, v in parameters.items())\n\n\ndef test_pandas(ford_2012):\n    import pandas\n    input_df = pandas.DataFrame(ford_2012)\n    input_dict = dict((k, pandas.Series(v)) for k, v in ford_2012.items())\n\n    expected_k, expected_d = func.STOCH(ford_2012['high'], ford_2012['low'], ford_2012['close']) # 5, 3, 0, 3, 0\n    output = abstract.Function('stoch', input_df).outputs\n    assert isinstance(output, pandas.DataFrame)\n    assert_array_equal(expected_k, output['slowk'])\n    assert_array_equal(expected_d, output['slowd'])\n    output = abstract.Function('stoch', input_dict).outputs\n    assert isinstance(output, list)\n    assert_array_equal(expected_k, output[0])\n    assert_array_equal(expected_d, output[1])\n\n    expected = func.SMA(ford_2012['close'], 10)\n    output = abstract.Function('sma', input_df, 10).outputs\n    assert isinstance(output, pandas.Series)\n    assert_array_equal(expected, output)\n    output = abstract.Function('sma', input_dict, 10).outputs\n    assert isinstance(output, np.ndarray)\n    assert_array_equal(expected, output)\n\n\ndef test_pandas_series(ford_2012):\n    import pandas\n    input_df = pandas.DataFrame(ford_2012)\n    output = talib.SMA(input_df['close'], 10)\n    expected = pandas.Series(func.SMA(ford_2012['close'], 10),\n                             index=input_df.index)\n    pandas.testing.assert_series_equal(output, expected)\n\n    # Test kwargs\n    output = talib.SMA(real=input_df['close'], timeperiod=10)\n    pandas.testing.assert_series_equal(output, expected)\n\n    # Test talib.func API\n    output = func.SMA(input_df['close'], timeperiod=10)\n    pandas.testing.assert_series_equal(output, expected)\n\n    # Test multiple outputs such as from BBANDS\n    _, output, _ = talib.BBANDS(input_df['close'], 10)\n    expected = pandas.Series(func.BBANDS(ford_2012['close'], 10)[1],\n                             index=input_df.index)\n    pandas.testing.assert_series_equal(output, expected)\n\n\ndef test_SMA(ford_2012):\n    expected = func.SMA(ford_2012['close'], 10)\n    assert_array_equal(expected, abstract.Function('sma', ford_2012, 10).outputs)\n    assert_array_equal(expected, abstract.Function('sma')(ford_2012, 10, price='close'))\n    assert_array_equal(expected, abstract.Function('sma')(ford_2012, timeperiod=10))\n    expected = func.SMA(ford_2012['open'], 10)\n    assert_array_equal(expected, abstract.Function('sma', ford_2012, 10, price='open').outputs)\n    assert_array_equal(expected, abstract.Function('sma', price='low')(ford_2012, 10, price='open'))\n    assert_array_not_equal(expected, abstract.Function('sma', ford_2012, 10, price='open')(timeperiod=20))\n    assert_array_not_equal(expected, abstract.Function('sma', ford_2012)(10, price='close'))\n    assert_array_not_equal(expected, abstract.Function('sma', 10)(ford_2012, price='high'))\n    assert_array_not_equal(expected, abstract.Function('sma', price='low')(ford_2012, 10))\n    input_arrays = {'foobarbaz': ford_2012['open']}\n    assert_array_equal(expected, abstract.SMA(input_arrays, 10, price='foobarbaz'))\n\n\ndef test_STOCH(ford_2012):\n    # check defaults match\n    expected_k, expected_d = func.STOCH(ford_2012['high'], ford_2012['low'], ford_2012['close']) # 5, 3, 0, 3, 0\n    got_k, got_d = abstract.Function('stoch', ford_2012).outputs\n    assert_array_equal(expected_k, got_k)\n    assert_array_equal(expected_d, got_d)\n\n    expected_k, expected_d = func.STOCH(ford_2012['high'], ford_2012['low'], ford_2012['close'])\n    got_k, got_d = abstract.Function('stoch', ford_2012)(5, 3, 0, 3, 0)\n    assert_array_equal(expected_k, got_k)\n    assert_array_equal(expected_d, got_d)\n\n    expected_k, expected_d = func.STOCH(ford_2012['high'], ford_2012['low'], ford_2012['close'], 15)\n    got_k, got_d = abstract.Function('stoch', ford_2012)(15, 5, 0, 5, 0)\n    assert_array_not_equal(expected_k, got_k)\n    assert_array_not_equal(expected_d, got_d)\n\n    expected_k, expected_d = func.STOCH(ford_2012['high'], ford_2012['low'], ford_2012['close'], 15, 5, 1, 5, 1)\n    got_k, got_d = abstract.Function('stoch', ford_2012)(15, 5, 1, 5, 1)\n    assert_array_equal(expected_k, got_k)\n    assert_array_equal(expected_d, got_d)\n\n\ndef test_doji_candle(ford_2012):\n    expected = func.CDLDOJI(ford_2012['open'], ford_2012['high'], ford_2012['low'], ford_2012['close'])\n    got = abstract.Function('CDLDOJI').run(ford_2012)\n    assert_array_equal(got, expected)\n\n\ndef test_MAVP(ford_2012):\n    mavp = abstract.MAVP\n    with pytest.raises(Exception):\n        mavp.set_input_arrays(ford_2012)\n    input_d = {}\n    input_d['close'] = ford_2012['close']\n    input_d['periods'] = np.arange(30)\n    assert mavp.set_input_arrays(input_d)\n    assert mavp.input_arrays == input_d\n\n\ndef test_info():\n    stochrsi = abstract.Function('STOCHRSI')\n    stochrsi.input_names = {'price': 'open'}\n    stochrsi.parameters = {'fastd_matype': talib.MA_Type.EMA}\n    expected = {\n        'display_name': 'Stochastic Relative Strength Index',\n        'function_flags': ['Function has an unstable period'],\n        'group': 'Momentum Indicators',\n        'input_names': OrderedDict([('price', 'open')]),\n        'name': 'STOCHRSI',\n        'output_flags': OrderedDict([\n            ('fastk', ['Line']),\n            ('fastd', ['Line']),\n            ]),\n        'output_names': ['fastk', 'fastd'],\n        'parameters': OrderedDict([\n            ('timeperiod', 14),\n            ('fastk_period', 5),\n            ('fastd_period', 3),\n            ('fastd_matype', 1),\n            ]),\n        }\n    assert expected == stochrsi.info\n\n    expected = {\n        'display_name': 'Bollinger Bands',\n        'function_flags': ['Output scale same as input'],\n        'group': 'Overlap Studies',\n        'input_names': OrderedDict([('price', 'close')]),\n        'name': 'BBANDS',\n        'output_flags': OrderedDict([\n            ('upperband', ['Values represent an upper limit']),\n            ('middleband', ['Line']),\n            ('lowerband', ['Values represent a lower limit']),\n            ]),\n        'output_names': ['upperband', 'middleband', 'lowerband'],\n        'parameters': OrderedDict([\n            ('timeperiod', 5),\n            ('nbdevup', 2),\n            ('nbdevdn', 2),\n            ('matype', 0),\n            ]),\n        }\n    assert expected == abstract.Function('BBANDS').info\n\n\ndef test_input_names():\n    expected = OrderedDict([('price', 'close')])\n    assert expected == abstract.Function('MAMA').input_names\n\n    # test setting input_names\n    obv = abstract.Function('OBV')\n    expected = OrderedDict([\n        ('price', 'open'),\n        ('prices', ['volume']),\n        ])\n    obv.input_names = expected\n    assert obv.input_names == expected\n\n    obv.input_names = {\n        'price': 'open',\n        'prices': ['volume'],\n        }\n    assert obv.input_names == expected\n\n\ndef test_input_arrays(ford_2012):\n    mama = abstract.Function('MAMA')\n\n    # test default setting\n    assert mama.get_input_arrays() == {}\n\n    # test setting/getting input_arrays\n    assert mama.set_input_arrays(ford_2012)\n    assert mama.get_input_arrays() == ford_2012\n    with pytest.raises(Exception):\n        mama.set_input_arrays({'hello': 'fail', 'world': 'bye'})\n\n    # test only required keys are needed\n    willr = abstract.Function('WILLR')\n    reqd = willr.input_names['prices']\n    input_d = dict([(key, ford_2012[key]) for key in reqd])\n    assert willr.set_input_arrays(input_d)\n    assert willr.input_arrays == input_d\n\n    # test extraneous keys are ignored\n    input_d['extra_stuffs'] = 'you should never see me'\n    input_d['date'] = np.random.rand(100)\n    assert willr.set_input_arrays(input_d)\n\n    # test missing keys get detected\n    input_d['open'] = ford_2012['open']\n    input_d.pop('close')\n    with pytest.raises(Exception):\n        willr.set_input_arrays(input_d)\n\n    # test changing input_names on the Function\n    willr.input_names = {'prices': ['high', 'low', 'open']}\n    assert willr.set_input_arrays(input_d)\n\n\ndef test_parameters():\n    stoch = abstract.Function('STOCH')\n    expected = OrderedDict([\n        ('fastk_period', 5),\n        ('slowk_period', 3),\n        ('slowk_matype', 0),\n        ('slowd_period', 3),\n        ('slowd_matype', 0),\n        ])\n    assert expected == stoch.parameters\n\n    stoch.parameters = {'fastk_period': 10}\n    expected['fastk_period'] = 10\n    assert expected == stoch.parameters\n\n    stoch.parameters = {'slowk_period': 8, 'slowd_period': 5}\n    expected['slowk_period'] = 8\n    expected['slowd_period'] = 5\n    assert expected == stoch.parameters\n\n    stoch.parameters = {'slowd_matype': talib.MA_Type.T3}\n    expected['slowd_matype'] = 8\n    assert expected == stoch.parameters\n\n    stoch.parameters = {\n        'slowk_matype': talib.MA_Type.WMA,\n        'slowd_matype': talib.MA_Type.EMA,\n        }\n    expected['slowk_matype'] = 2\n    expected['slowd_matype'] = 1\n    assert expected == stoch.parameters\n\n\ndef test_lookback():\n    assert abstract.Function('SMA', 10).lookback == 9\n\n    stochrsi = abstract.Function('stochrsi', 20, 5, 3)\n    assert stochrsi.lookback == 26\n\n\ndef test_call_supports_same_signature_as_func_module(ford_2012):\n    adx = abstract.Function('ADX')\n\n    expected = func.ADX(ford_2012['open'], ford_2012['high'], ford_2012['low'])\n    output = adx(ford_2012['open'], ford_2012['high'], ford_2012['low'])\n    assert_array_equal(expected, output)\n\n    expected_error = re.escape('Too many price arguments: expected 3 (high, low, close)')\n\n    with pytest.raises(TypeError, match=expected_error):\n        adx(ford_2012['open'], ford_2012['high'], ford_2012['low'], ford_2012['close'])\n\n    expected_error = re.escape('Not enough price arguments: expected 3 (high, low, close)')\n\n    with pytest.raises(TypeError, match=expected_error):\n        adx(ford_2012['open'], ford_2012['high'])\n\n\ndef test_parameter_type_checking(ford_2012):\n    sma = abstract.Function('SMA', timeperiod=10)\n\n    expected_error = re.escape('Invalid parameter value for timeperiod (expected int, got float)')\n\n    with pytest.raises(TypeError, match=expected_error):\n        sma(ford_2012['close'], 35.5)\n\n    with pytest.raises(TypeError, match=expected_error):\n        abstract.Function('SMA', timeperiod=35.5)\n\n    with pytest.raises(TypeError, match=expected_error):\n        sma.parameters = {'timeperiod': 35.5}\n\n    with pytest.raises(TypeError, match=expected_error):\n        sma.set_parameters(timeperiod=35.5)\n\n\ndef test_call_doesnt_cache_parameters(ford_2012):\n    sma = abstract.Function('SMA', timeperiod=10)\n\n    expected = func.SMA(ford_2012['open'], 20)\n    output = sma(ford_2012, timeperiod=20, price='open')\n    assert_array_equal(expected, output)\n\n    expected = func.SMA(ford_2012['close'], 20)\n    output = sma(ford_2012, timeperiod=20)\n    assert_array_equal(expected, output)\n\n    expected = func.SMA(ford_2012['close'], 10)\n    output = sma(ford_2012)\n    assert_array_equal(expected, output)\n\n\ndef test_call_without_arguments():\n    with pytest.raises(TypeError, match='Not enough price arguments'):\n        abstract.Function('SMA')()\n\n    with pytest.raises(TypeError, match='Not enough price arguments'):\n        abstract.Function('SMA')(10)\n\n\ndef test_threading():\n    import pandas as pd\n    TEST_LEN_SHORT = 999\n    TEST_LEN_LONG = 4005\n    LOOPS = 1000\n    THREADS = 4\n\n    data_short = np.random.rand(TEST_LEN_SHORT, 5)\n    data_long = np.random.rand(TEST_LEN_LONG, 5)\n\n    df_short = pd.DataFrame(data_short, columns=['open', 'high', 'low', 'close', 'volume'])\n    df_long = pd.DataFrame(data_long, columns=['open', 'high', 'low', 'close', 'volume'])\n\n    total = 0\n\n    def loop(i):\n        nonlocal total\n        if i % 2 == 0:\n            df = copy.deepcopy(df_short)\n        else:\n            df = copy.deepcopy(df_long)\n\n        for _ in range(LOOPS):\n            total += 1\n            df['RSI'] = abstract.RSI(df)\n\n    t0 = time.time()\n\n    threads = []\n    for i in range(THREADS):\n        t = threading.Thread(target=lambda: loop(i))\n        threads.append(t)\n        t.start()\n\n    for t in threads:\n        t.join()\n\n    t1 = time.time()\n    print('test_len: %d, loops: %d' % (TEST_LEN_LONG, LOOPS))\n    print('%.6f' % (t1 - t0))\n    print('%.6f' % ((t1 - t0) / LOOPS))\n\n    assert total == THREADS * LOOPS\n"
  },
  {
    "path": "tests/test_func.py",
    "content": "import numpy as np\nfrom numpy.testing import assert_array_equal, assert_array_almost_equal\nimport pytest\n\nimport talib\nfrom talib import func\n\n\ndef test_talib_version():\n    assert talib.__ta_version__[:5] == b'0.6.4'\n\n\ndef test_num_functions():\n    assert len(talib.get_functions()) == 161\n\n\ndef test_input_wrong_type():\n    a1 = np.arange(10, dtype=int)\n    with pytest.raises(Exception):\n        func.MOM(a1)\n\n\ndef test_input_lengths():\n    a1 = np.arange(10, dtype=float)\n    a2 = np.arange(11, dtype=float)\n    with pytest.raises(Exception):\n        func.BOP(a2, a1, a1, a1)\n    with pytest.raises(Exception):\n        func.BOP(a1, a2, a1, a1)\n    with pytest.raises(Exception):\n        func.BOP(a1, a1, a2, a1)\n    with pytest.raises(Exception):\n        func.BOP(a1, a1, a1, a2)\n\n\ndef test_input_allnans():\n    a = np.arange(20, dtype=float)\n    a[:] = np.nan\n    r = func.RSI(a)\n    assert np.all(np.isnan(r))\n\n\ndef test_input_nans():\n    a1 = np.arange(10, dtype=float)\n    a2 = np.arange(10, dtype=float)\n    a2[0] = np.nan\n    a2[1] = np.nan\n    r1, r2 = func.AROON(a1, a2, 2)\n    assert_array_equal(r1, [np.nan, np.nan, np.nan, np.nan, 0, 0, 0, 0, 0, 0])\n    assert_array_equal(r2, [np.nan, np.nan, np.nan, np.nan, 100, 100, 100, 100, 100, 100])\n    r1, r2 = func.AROON(a2, a1, 2)\n    assert_array_equal(r1, [np.nan, np.nan, np.nan, np.nan, 0, 0, 0, 0, 0, 0])\n    assert_array_equal(r2, [np.nan, np.nan, np.nan, np.nan, 100, 100, 100, 100, 100, 100])\n\n\ndef test_unstable_period():\n    a = np.arange(10, dtype=float)\n    r = func.EMA(a, 3)\n    assert_array_equal(r, [np.nan, np.nan, 1, 2, 3, 4, 5, 6, 7, 8])\n    talib.set_unstable_period('EMA', 5)\n    r = func.EMA(a, 3)\n    assert_array_equal(r, [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, 6, 7, 8])\n    talib.set_unstable_period('EMA', 0)\n\n\ndef test_compatibility():\n    a = np.arange(10, dtype=float)\n    talib.set_compatibility(0)\n    r = func.EMA(a, 3)\n    assert_array_equal(r, [np.nan, np.nan, 1, 2, 3, 4, 5, 6, 7, 8])\n    talib.set_compatibility(1)\n    r = func.EMA(a, 3)\n    assert_array_equal(r, [np.nan, np.nan,1.25,2.125,3.0625,4.03125,5.015625,6.0078125,7.00390625,8.001953125])\n    talib.set_compatibility(0)\n\n\ndef test_MIN(series):\n    result = func.MIN(series, timeperiod=4)\n    i = np.where(~np.isnan(result))[0][0]\n    assert len(series) == len(result)\n    assert result[i + 1] == 93.780\n    assert result[i + 2] == 93.780\n    assert result[i + 3] == 92.530\n    assert result[i + 4] == 92.530\n    values = np.array([np.nan, 5., 4., 3., 5., 7.])\n    result = func.MIN(values, timeperiod=2)\n    assert_array_equal(result, [np.nan, np.nan, 4, 3, 3, 5])\n\n\ndef test_MAX(series):\n    result = func.MAX(series, timeperiod=4)\n    i = np.where(~np.isnan(result))[0][0]\n    assert len(series) == len(result)\n    assert result[i + 2] == 95.090\n    assert result[i + 3] == 95.090\n    assert result[i + 4] == 94.620\n    assert result[i + 5] == 94.620\n\n\ndef test_MOM():\n    values = np.array([90.0,88.0,89.0])\n    result = func.MOM(values, timeperiod=1)\n    assert_array_equal(result, [np.nan, -2, 1])\n    result = func.MOM(values, timeperiod=2)\n    assert_array_equal(result, [np.nan, np.nan, -1])\n    result = func.MOM(values, timeperiod=3)\n    assert_array_equal(result, [np.nan, np.nan, np.nan])\n    result = func.MOM(values, timeperiod=4)\n    assert_array_equal(result, [np.nan, np.nan, np.nan])\n\n\ndef test_BBANDS(series):\n    upper, middle, lower = func.BBANDS(\n        series,\n        timeperiod=20,\n        nbdevup=2.0,\n        nbdevdn=2.0,\n        matype=talib.MA_Type.EMA\n    )\n    i = np.where(~np.isnan(upper))[0][0]\n    assert len(upper) == len(middle) == len(lower) == len(series)\n    # assert abs(upper[i + 0] - 98.0734) < 1e-3\n    assert abs(middle[i + 0] - 92.8910) < 1e-3\n    assert abs(lower[i + 0] - 87.7086) < 1e-3\n    # assert abs(upper[i + 13] - 93.674) < 1e-3\n    assert abs(middle[i + 13] - 87.679) < 1e-3\n    assert abs(lower[i + 13] - 81.685) < 1e-3\n\n\ndef test_DEMA(series):\n    result = func.DEMA(series)\n    i = np.where(~np.isnan(result))[0][0]\n    assert len(series) == len(result)\n    assert abs(result[i + 1] - 86.765) < 1e-3\n    assert abs(result[i + 2] - 86.942) < 1e-3\n    assert abs(result[i + 3] - 87.089) < 1e-3\n    assert abs(result[i + 4] - 87.656) < 1e-3\n\n\ndef test_EMAEMA(series):\n    result = func.EMA(series, timeperiod=2)\n    result = func.EMA(result, timeperiod=2)\n    i = np.where(~np.isnan(result))[0][0]\n    assert len(series) == len(result)\n    assert i == 2\n\n\ndef test_CDL3BLACKCROWS():\n    o = np.array([39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 40.32, 40.51, 38.09, 35.00, 27.66, 30.80])\n    h = np.array([40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 41.69, 40.84, 38.12, 35.50, 31.74, 32.51])\n    l = np.array([35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 39.26, 36.73, 33.37, 30.03, 27.03, 28.31])\n    c = np.array([40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.46, 37.08, 33.37, 30.03, 31.46, 28.31])\n\n    result = func.CDL3BLACKCROWS(o, h, l, c)\n    assert_array_equal(result, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0])\n\n\ndef test_RSI():\n    a = np.array([0.00000024, 0.00000024, 0.00000024,\n      0.00000024, 0.00000024, 0.00000023,\n      0.00000024, 0.00000024, 0.00000024,\n      0.00000024, 0.00000023, 0.00000024,\n      0.00000023, 0.00000024, 0.00000023,\n      0.00000024, 0.00000024, 0.00000023,\n      0.00000023, 0.00000023], dtype='float64')\n    result = func.RSI(a, 10)\n    assert_array_almost_equal(result, [np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,33.333333333333329,51.351351351351347,39.491916859122398,51.84807024709005,42.25953803191981,52.101824405061215,52.101824405061215,43.043664867691085,43.043664867691085,43.043664867691085])\n    result = func.RSI(a * 100000, 10)\n    assert_array_almost_equal(result, [np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,33.333333333333329,51.351351351351347,39.491916859122398,51.84807024709005,42.25953803191981,52.101824405061215,52.101824405061215,43.043664867691085,43.043664867691085,43.043664867691085])\n\n\ndef test_MAVP():\n    a = np.array([1,5,3,4,7,3,8,1,4,6], dtype=float)\n    b = np.array([2,4,2,4,2,4,2,4,2,4], dtype=float)\n    result = func.MAVP(a, b, minperiod=2, maxperiod=4)\n    assert_array_equal(result, [np.nan,np.nan,np.nan,3.25,5.5,4.25,5.5,4.75,2.5,4.75])\n    sma2 = func.SMA(a, 2)\n    assert_array_equal(result[4::2], sma2[4::2])\n    sma4 = func.SMA(a, 4)\n    assert_array_equal(result[3::2], sma4[3::2])\n    result = func.MAVP(a, b, minperiod=2, maxperiod=3)\n    assert_array_equal(result, [np.nan,np.nan,4,4,5.5,4.666666666666667,5.5,4,2.5,3.6666666666666665])\n    sma3 = func.SMA(a, 3)\n    assert_array_equal(result[2::2], sma2[2::2])\n    assert_array_equal(result[3::2], sma3[3::2])\n\n\ndef test_MAXINDEX():\n    import talib as func\n    import numpy as np\n    a = np.array([1., 2, 3, 4, 5, 6, 7, 8, 7, 7, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 15])\n    b = func.MA(a, 10)\n    c = func.MAXINDEX(b, 10)\n    assert_array_equal(c, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,21])\n    d = np.array([1., 2, 3])\n    e = func.MAXINDEX(d, 10)\n    assert_array_equal(e, [0,0,0])\n"
  },
  {
    "path": "tests/test_pandas.py",
    "content": "import numpy as np\nfrom numpy.testing import assert_array_equal\nimport pandas as pd\n\nimport talib\n\n\ndef test_MOM():\n    values = pd.Series([90.0,88.0,89.0], index=[10, 20, 30])\n    result = talib.MOM(values, timeperiod=1)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan, -2, 1])\n    assert_array_equal(result.index, [10, 20, 30])\n    result = talib.MOM(values, timeperiod=2)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan, np.nan, -1])\n    assert_array_equal(result.index, [10, 20, 30])\n    result = talib.MOM(values, timeperiod=3)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan, np.nan, np.nan])\n    assert_array_equal(result.index, [10, 20, 30])\n    result = talib.MOM(values, timeperiod=4)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan, np.nan, np.nan])\n    assert_array_equal(result.index, [10, 20, 30])\n\n\ndef test_MAVP():\n    a = pd.Series([1,5,3,4,7,3,8,1,4,6], index=range(10, 20), dtype=float)\n    b = pd.Series([2,4,2,4,2,4,2,4,2,4], index=range(20, 30), dtype=float)\n    result = talib.MAVP(a, b, minperiod=2, maxperiod=4)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan,np.nan,np.nan,3.25,5.5,4.25,5.5,4.75,2.5,4.75])\n    assert_array_equal(result.index, range(10, 20))\n    sma2 = talib.SMA(a, 2)\n    assert isinstance(sma2, pd.Series)\n    assert_array_equal(sma2.index, range(10, 20))\n    assert_array_equal(result.values[4::2], sma2.values[4::2])\n    sma4 = talib.SMA(a, 4)\n    assert isinstance(sma4, pd.Series)\n    assert_array_equal(sma4.index, range(10, 20))\n    assert_array_equal(result.values[3::2], sma4.values[3::2])\n    result = talib.MAVP(a, b, minperiod=2, maxperiod=3)\n    assert isinstance(result, pd.Series)\n    assert_array_equal(result.values, [np.nan,np.nan,4,4,5.5,4.666666666666667,5.5,4,2.5,3.6666666666666665])\n    assert_array_equal(result.index, range(10, 20))\n    sma3 = talib.SMA(a, 3)\n    assert isinstance(sma3, pd.Series)\n    assert_array_equal(sma3.index, range(10, 20))\n    assert_array_equal(result.values[2::2], sma2.values[2::2])\n    assert_array_equal(result.values[3::2], sma3.values[3::2])\n"
  },
  {
    "path": "tests/test_polars.py",
    "content": "import numpy as np\nfrom numpy.testing import assert_array_equal\nimport polars as pl\n\nimport talib\nfrom talib import abstract\n\ndef test_MOM():\n    values = pl.Series([90.0,88.0,89.0])\n    result = talib.MOM(values, timeperiod=1)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan, -2, 1])\n    result = talib.MOM(values, timeperiod=2)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan, np.nan, -1])\n    result = talib.MOM(values, timeperiod=3)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan, np.nan, np.nan])\n    result = talib.MOM(values, timeperiod=4)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan, np.nan, np.nan])\n\n\ndef test_MAVP():\n    a = pl.Series([1,5,3,4,7,3,8,1,4,6], dtype=pl.Float64)\n    b = pl.Series([2,4,2,4,2,4,2,4,2,4], dtype=pl.Float64)\n    result = talib.MAVP(a, b, minperiod=2, maxperiod=4)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan,np.nan,np.nan,3.25,5.5,4.25,5.5,4.75,2.5,4.75])\n    sma2 = talib.SMA(a, 2)\n    assert isinstance(sma2, pl.Series)\n    assert_array_equal(result.to_numpy()[4::2], sma2.to_numpy()[4::2])\n    sma4 = talib.SMA(a, 4)\n    assert isinstance(sma4, pl.Series)\n    assert_array_equal(result.to_numpy()[3::2], sma4.to_numpy()[3::2])\n    result = talib.MAVP(a, b, minperiod=2, maxperiod=3)\n    assert isinstance(result, pl.Series)\n    assert_array_equal(result.to_numpy(), [np.nan,np.nan,4,4,5.5,4.666666666666667,5.5,4,2.5,3.6666666666666665])\n    sma3 = talib.SMA(a, 3)\n    assert isinstance(sma3, pl.Series)\n    assert_array_equal(result.to_numpy()[2::2], sma2.to_numpy()[2::2])\n    assert_array_equal(result.to_numpy()[3::2], sma3.to_numpy()[3::2])\n\n\ndef test_TEVA():\n    size = 50\n    df = pl.DataFrame(\n        {\n            \"open\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"high\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"low\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"close\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"volume\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\")\n        }\n    )\n    tema1 = abstract.TEMA(df, timeperiod=9)\n    assert isinstance(tema1, pl.Series)\n    assert len(tema1) == 50\n    inputs = abstract.TEMA.get_input_arrays()\n    assert inputs.columns == df.columns\n    for column in df.columns:\n        assert_array_equal(inputs[column].to_numpy(), df[column].to_numpy())\n\n    tema2 = abstract.TEMA(df, timeperiod=9)\n    assert isinstance(tema2, pl.Series)\n    assert len(tema2) == 50\n    inputs = abstract.TEMA.get_input_arrays()\n    assert inputs.columns == df.columns\n    for column in df.columns:\n        assert_array_equal(inputs[column].to_numpy(), df[column].to_numpy())\n\n    assert_array_equal(tema1.to_numpy(), tema2.to_numpy())\n\ndef test_AVR():\n    size = 50\n    df = pl.DataFrame(\n        {\n            \"open\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"high\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"low\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"close\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\"),\n            \"volume\": np.random.uniform(low=0.0, high=100.0, size=size).astype(\"float32\")\n        }\n    )\n    high = df['high']\n    low = df['low']\n    close = df['close']\n    atr = talib.ATR(high, low, close, timeperiod=14)\n"
  },
  {
    "path": "tests/test_stream.py",
    "content": "import numpy as np\nimport pandas as pd\n\nfrom talib import stream\n\n\ndef test_streaming():\n    a = np.array([1,1,2,3,5,8,13], dtype=float)\n    r = stream.MOM(a, timeperiod=1)\n    assert r == 5\n    r = stream.MOM(a, timeperiod=2)\n    assert r == 8\n    r = stream.MOM(a, timeperiod=3)\n    assert r == 10\n    r = stream.MOM(a, timeperiod=4)\n    assert r == 11\n    r = stream.MOM(a, timeperiod=5)\n    assert r == 12\n    r = stream.MOM(a, timeperiod=6)\n    assert r == 12\n    r = stream.MOM(a, timeperiod=7)\n    assert np.isnan(r)\n\n\ndef test_streaming_pandas():\n    a = pd.Series([1,1,2,3,5,8,13])\n    r = stream.MOM(a, timeperiod=1)\n    assert r == 5\n    r = stream.MOM(a, timeperiod=2)\n    assert r == 8\n    r = stream.MOM(a, timeperiod=3)\n    assert r == 10\n    r = stream.MOM(a, timeperiod=4)\n    assert r == 11\n    r = stream.MOM(a, timeperiod=5)\n    assert r == 12\n    r = stream.MOM(a, timeperiod=6)\n    assert r == 12\n    r = stream.MOM(a, timeperiod=7)\n    assert np.isnan(r)\n\n\ndef test_CDL3BLACKCROWS():\n    o = np.array([39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 40.32, 40.51, 38.09, 35.00])\n    h = np.array([40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 41.69, 40.84, 38.12, 35.50])\n    l = np.array([35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 39.26, 36.73, 33.37, 30.03])\n    c = np.array([40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.46, 37.08, 33.37, 30.03])\n\n    r = stream.CDL3BLACKCROWS(o, h, l, c)\n    assert r == -100\n\n\ndef test_CDL3BLACKCROWS_pandas():\n    o = pd.Series([39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 40.32, 40.51, 38.09, 35.00])\n    h = pd.Series([40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 41.69, 40.84, 38.12, 35.50])\n    l = pd.Series([35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 39.26, 36.73, 33.37, 30.03])\n    c = pd.Series([40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.46, 37.08, 33.37, 30.03])\n\n    r = stream.CDL3BLACKCROWS(o, h, l, c)\n    assert r == -100\n\n\ndef test_MAXINDEX():\n    a = np.array([1., 2, 3, 4, 5, 6, 7, 8, 7, 7, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 15])\n    r = stream.MAXINDEX(a, 10)\n    assert r == 21\n"
  },
  {
    "path": "tools/build_talib_linux.sh",
    "content": "#!/bin/bash\n\nTALIB_C_VER=\"${TALIB_C_VER:=0.6.4}\"\nCMAKE_GENERATOR=\"Unix Makefiles\"\nCMAKE_BUILD_TYPE=Release\nCMAKE_CONFIGURATION_TYPES=Release\n\n# Download TA-Lib C Library\ncurl -L -o talib-${TALIB_C_VER}.zip https://github.com/TA-Lib/ta-lib/archive/refs/tags/v${TALIB_C_VER}.zip\nif [ $? -ne 0 ]; then\n    echo \"Failed to download TA-Lib C library\"\n    exit 1\nfi\n\n# Unzip TA-Lib C\nunzip -q talib-${TALIB_C_VER}.zip\nif [ $? -ne 0 ]; then\n    echo \"Failed to extract TA-Lib C library\"\n    exit 1\nfi\n\n# cd to TA-Lib C\ncd ta-lib-${TALIB_C_VER}\n\n# Copy TA-Lib C headers to TA-Lib Python\nmkdir -p include/ta-lib/\ncp include/*.h include/ta-lib/\n\n# Create build directory\nmkdir -p _build\ncd _build\n\n# Use CMake to configure the build\ncmake -G \"$CMAKE_GENERATOR\" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_INSTALL_PREFIX=../../ta-lib-install ..\nif [ $? -ne 0 ]; then\n    echo \"CMake configuration failed\"\n    exit 1\nfi\n\n# Compile TA-Lib\nmake\nif [ $? -ne 0 ]; then\n    echo \"Build failed\"\n    exit 1\nfi\n\nmake install\nif [ $? -ne 0 ]; then\n    echo \"Install failed\"\n    exit 1\nfi\n\necho \"TA-Lib build completed successfully!\"\n"
  },
  {
    "path": "tools/build_talib_macos.sh",
    "content": "#!/bin/bash\n\nTALIB_C_VER=\"${TALIB_C_VER:=0.6.4}\"\nCMAKE_GENERATOR=\"Unix Makefiles\"\nCMAKE_BUILD_TYPE=Release\nCMAKE_CONFIGURATION_TYPES=Release\n\n# Download TA-Lib C Library\ncurl -L -o talib-${TALIB_C_VER}.zip https://github.com/TA-Lib/ta-lib/archive/refs/tags/v${TALIB_C_VER}.zip\nif [ $? -ne 0 ]; then\n    echo \"Failed to download TA-Lib C library\"\n    exit 1\nfi\n\n# Unzip TA-Lib C\nunzip -q talib-${TALIB_C_VER}.zip\nif [ $? -ne 0 ]; then\n    echo \"Failed to extract TA-Lib C library\"\n    exit 1\nfi\n\n# cd to TA-Lib C\ncd ta-lib-${TALIB_C_VER}\n\n# Copy TA-Lib C headers to TA-Lib Python\nmkdir -p include/ta-lib/\ncp include/*.h include/ta-lib/\n\n# Create build directory\nmkdir -p _build\ncd _build\n\n# Use CMake to configure the build\ncmake -G \"$CMAKE_GENERATOR\" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_INSTALL_PREFIX=../../ta-lib-install ..\nif [ $? -ne 0 ]; then\n    echo \"CMake configuration failed\"\n    exit 1\nfi\n\n# Compile TA-Lib\nmake\nif [ $? -ne 0 ]; then\n    echo \"Build failed\"\n    exit 1\nfi\n\nmake install\nif [ $? -ne 0 ]; then\n    echo \"Install failed\"\n    exit 1\nfi\n\necho \"TA-Lib build completed successfully!\"\n"
  },
  {
    "path": "tools/build_talib_windows.cmd",
    "content": ":: Download and build TA-Lib \n@echo on\n\nif not defined TALIB_C_VER set TALIB_C_VER=0.6.4\n\nset CMAKE_GENERATOR=NMake Makefiles\nset CMAKE_BUILD_TYPE=Release\nset CMAKE_CONFIGURATION_TYPES=Release\n\ncurl -L -o talib-%TALIB_C_VER%.zip https://github.com/TA-Lib/ta-lib/archive/refs/tags/v%TALIB_C_VER%.zip\nif errorlevel 1 exit /B 1\n\ntar -xzvf talib-%TALIB_C_VER%.zip\nif errorlevel 1 exit /B 1\n\n:: git apply --verbose --binary talib.diff\n:: if errorlevel 1 exit /B 1\n\n:: set MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT\n\nsetlocal\ncd ta-lib-%TALIB_C_VER%\n\nmkdir  include\\ta-lib\ncopy /Y include\\*.* include\\ta-lib\n\nmd _build\ncd _build\n\ncmake.exe ..\nif errorlevel 1 exit /B 1\n\nnmake.exe /nologo all\nif errorlevel 1 exit /B 1\n\ncopy /Y /B ta-lib-static.lib ta-lib.lib\n\nendlocal\n"
  },
  {
    "path": "tools/example.py",
    "content": "import sys\nimport numpy as np\nimport pylab\n\nimport talib\nfrom talib.abstract import Function\n\nTEST_LEN = int(sys.argv[1]) if len(sys.argv) > 1 else 100\nr = np.arange(TEST_LEN)\nidata = np.random.random(TEST_LEN)\n\ndef func_example():\n    odata = talib.MA(idata)\n    upper, middle, lower = talib.BBANDS(idata)\n    kama = talib.KAMA(idata)\n    plot(odata, upper, middle, lower, kama)\n\ndef abstract_example():\n    sma = Function('sma')\n    input_arrays = sma.get_input_arrays()\n    for key in input_arrays.keys():\n        input_arrays[key] = idata\n    sma.set_input_arrays(input_arrays)\n    odata = sma(30) # timePeriod=30, specified as an arg\n\n    bbands = Function('bbands', input_arrays)\n    bbands.parameters = {\n        'timeperiod': 20,\n        'nbdevup': 2,\n        'nbdevdn': 2\n    }\n    upper, middle, lower = bbands() # multiple output values unpacked (these will always have the correct order)\n\n    kama = Function('kama').run(input_arrays) # alternative run() calling method.\n    plot(odata, upper, middle, lower, kama)\n\ndef plot(odata, upper, middle, lower, kama):\n    pylab.plot(r, idata, 'b-', label=\"original\")\n    pylab.plot(r, odata, 'g-', label=\"MA\")\n    pylab.plot(r, upper, 'r-', label=\"Upper\")\n    pylab.plot(r, middle, 'r-', label=\"Middle\")\n    pylab.plot(r, lower, 'r-', label=\"Lower\")\n    pylab.plot(r, kama, 'g', label=\"KAMA\")\n    pylab.legend()\n    pylab.show()\n\nif __name__ == '__main__':\n    print('All functions (sorted by group):')\n    groups = talib.get_function_groups()\n    for group, functions in sorted(groups.items()):\n        print('%s functions: %s' % (group, functions))\n\n    if len(sys.argv) == 1 or sys.argv[1] == 'func':\n        print('Using talib.func')\n        func_example()\n    else:\n        print('Using talib.abstract')\n        abstract_example()\n"
  },
  {
    "path": "tools/generate_abstract_stub.py",
    "content": "import inspect\nimport talib\nimport talib.abstract as abstract\n\nHEADER = \"\"\"\nfrom typing import overload, Tuple, Union\nimport numpy as np\nimport pandas as pd\n\"\"\"\n\nNUMPY = \"np.ndarray\"\nSERIES = \"pd.Series\"\nDATAFRAME = \"pd.DataFrame\"\n\n\ndef parse_signature(name: str) -> str:\n    \"\"\"\n    Return a comma-separated function signature for the given TA-Lib abstract function\n    using the latest talib (OrderedDict parameters)\n    \"\"\"\n    func = abstract.Function(name)\n    func_info = func.info\n    params = [\"real\"]  # always first\n\n    for param_name, default_val in func_info[\"parameters\"].items():\n        if default_val is not None:\n            params.append(f\"{param_name}={repr(default_val)}\")\n        else:\n            params.append(param_name)\n\n    return \", \".join(params)\n\n\ndef output_type(func):\n    outputs = func.output_names\n\n    if len(outputs) == 1:\n        return NUMPY, SERIES\n\n    tuple_np_type = f\"Tuple[{', '.join([NUMPY]*len(outputs))}]\"\n\n    return tuple_np_type, DATAFRAME\n\n\ndef clean_doc(doc):\n    # Remove redundant first line\n    return \"\\n\".join(doc.splitlines()[1:]).strip()\n\n\ndef generate_function(name: str):\n    func = abstract.Function(name)\n\n    params = parse_signature(name)\n    np_type, pd_type = output_type(func)\n\n    # get talib module docstring (Python-level)\n    doc = clean_doc(inspect.getdoc(getattr(talib, name)))\n\n    lines = []\n\n    if doc:\n        lines.append(f'\"\"\"{doc}\"\"\"')\n\n    # Union overload for Series + ndarray (catches both)\n    union_params = params.replace(\"real\", \"real: Union[pd.Series, np.ndarray]\")\n    lines.append(\"@overload\")\n    lines.append(f\"def {name}({union_params}) -> {np_type}: ...\")\n\n    # DataFrame overload\n    df_params = params.replace(\"real\", \"real: pd.DataFrame\")\n    lines.append(\"@overload\")\n    lines.append(f\"def {name}({df_params}) -> {pd_type}: ...\")\n\n    return \"\\n\".join(lines)\n\n\ndef main():\n    print(HEADER)\n\n    for name in talib.get_functions():\n        print(generate_function(name))\n        print()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "tools/generate_func.py",
    "content": "import os\nimport re\nimport sys\n\nfrom talib import abstract\n\n# FIXME: initialize once, then shutdown at the end, rather than each call?\n# FIXME: should we pass startIdx and endIdx into function?\n# FIXME: don't return number of elements since it always equals allocation?\n\nfunctions = []\nif sys.platform == 'win32':\n    include_dirs = [\n        r\"c:\\ta-lib\\c\\include\",\n        r\"c:\\Program Files\\TA-Lib\\include\",\n        r\"c:\\Program Files (x86)\\TA-Lib\\include\",\n    ]\nelse:\n    include_dirs = [\n        '/usr/include',\n        '/usr/local/include',\n        '/opt/include',\n        '/opt/local/include',\n        '/opt/homebrew/include',\n        '/opt/homebrew/opt/ta-lib/include',\n    ]\n\nif 'TA_INCLUDE_PATH' in os.environ:\n    include_dirs = os.environ['TA_INCLUDE_PATH'].split(os.pathsep)\n\nheader_found = False\nfor path in include_dirs:\n    ta_func_header = os.path.join(path, 'ta-lib', 'ta_func.h')\n    if os.path.exists(ta_func_header):\n        header_found = True\n        break\nif not header_found:\n    print('Error: ta-lib/ta_func.h not found', file=sys.stderr)\n    sys.exit(1)\nwith open(ta_func_header) as f:\n    tmp = []\n    for line in f:\n        if line.startswith('TA_LIB_API'):\n            line = line[10:]\n        line = line.strip()\n        if tmp or \\\n            line.startswith('TA_RetCode TA_') or \\\n            line.startswith('int TA_'):\n            line = re.sub(r'/\\*[^\\*]+\\*/', '', line) # strip comments\n            tmp.append(line)\n            if not line:\n                s = ' '.join(tmp)\n                s = re.sub(r'\\s+', ' ', s)\n                functions.append(s)\n                tmp = []\n\n# strip \"float\" functions\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_S_')]\n\n# strip non-indicators\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_Set')]\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_Restore')]\n\n# print headers\nprint(\"\"\"\\\ncimport numpy as np\nfrom numpy import nan\nfrom cython import boundscheck, wraparound\n\n# _ta_check_success: defined in _common.pxi\n\ncdef double NaN = nan\n\ncdef extern from \"numpy/arrayobject.h\":\n    int PyArray_TYPE(np.ndarray)\n    np.ndarray PyArray_EMPTY(int, np.npy_intp*, int, int)\n    int PyArray_FLAGS(np.ndarray)\n    np.ndarray PyArray_GETCONTIGUOUS(np.ndarray)\n\nnp.import_array() # Initialize the NumPy C API\n\ncimport _ta_lib as lib\nfrom _ta_lib cimport TA_RetCode\n\ncdef np.ndarray check_array(np.ndarray real):\n    if PyArray_TYPE(real) != np.NPY_DOUBLE:\n        raise Exception(\"input array type is not double\")\n    if real.ndim != 1:\n        raise Exception(\"input array has wrong dimensions\")\n    if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS):\n        real = PyArray_GETCONTIGUOUS(real)\n    return real\n\ncdef np.npy_intp check_length2(np.ndarray a1, np.ndarray a2) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_intp check_length3(np.ndarray a1, np.ndarray a2, np.ndarray a3) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a3.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_intp check_length4(np.ndarray a1, np.ndarray a2, np.ndarray a3, np.ndarray a4) except -1:\n    cdef:\n        np.npy_intp length\n    length = a1.shape[0]\n    if length != a2.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a3.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    if length != a4.shape[0]:\n        raise Exception(\"input array lengths are different\")\n    return length\n\ncdef np.npy_int check_begidx1(np.npy_intp length, double* a1):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx2(np.npy_intp length, double* a1, double* a2):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx3(np.npy_intp length, double* a1, double* a2, double* a3):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        val = a3[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.npy_int check_begidx4(np.npy_intp length, double* a1, double* a2, double* a3, double* a4):\n    cdef:\n        double val\n    for i from 0 <= i < length:\n        val = a1[i]\n        if val != val:\n            continue\n        val = a2[i]\n        if val != val:\n            continue\n        val = a3[i]\n        if val != val:\n            continue\n        val = a4[i]\n        if val != val:\n            continue\n        return i\n    else:\n        return length - 1\n\ncdef np.ndarray make_double_array(np.npy_intp length, int lookback):\n    cdef:\n        np.ndarray outreal\n        double* outreal_data\n    outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, np.NPY_ARRAY_DEFAULT)\n    outreal_data = <double*>outreal.data\n    for i from 0 <= i < min(lookback, length):\n        outreal_data[i] = NaN\n    return outreal\n\ncdef np.ndarray make_int_array(np.npy_intp length, int lookback):\n    cdef:\n        np.ndarray outinteger\n        int* outinteger_data\n    outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, np.NPY_ARRAY_DEFAULT)\n    outinteger_data = <int*>outinteger.data\n    for i from 0 <= i < min(lookback, length):\n        outinteger_data[i] = 0\n    return outinteger\n\n\"\"\")\n\n# cleanup variable names to make them more pythonic\ndef cleanup(name):\n    if name.startswith('in'):\n        return name[2:].lower()\n    elif name.startswith('optIn'):\n        return name[5:].lower()\n    else:\n        return name.lower()\n\n# print functions\nnames = []\nfor f in functions:\n    if 'Lookback' in f: # skip lookback functions\n        continue\n\n    i = f.index('(')\n    name = f[:i].split()[1]\n    args = f[i:].split(',')\n    args = [re.sub(r'[\\(\\);]', '', s).strip() for s in args]\n\n    shortname = name[3:]\n    names.append(shortname)\n    try:\n        func_info = abstract.Function(shortname).info\n        defaults, documentation = abstract._get_defaults_and_docs(func_info)\n    except:\n        print(\"cannot find defaults and docs for\", shortname, file=sys.stderr)\n        defaults, documentation = {}, \"\"\n\n    print('@wraparound(False)  # turn off relative indexing from end of lists')\n    print('@boundscheck(False) # turn off bounds-checking for entire function')\n    print('def %s(' % shortname, end=' ')\n    docs = [' %s(' % shortname]\n    i = 0\n    for arg in args:\n        var = arg.split()[-1]\n\n        if var in ('startIdx', 'endIdx'):\n            continue\n\n        elif 'out' in var:\n            break\n\n        if i > 0:\n            print(',', end=' ')\n        i += 1\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            assert arg.startswith('const double'), arg\n            print('np.ndarray %s not None' % var, end=' ')\n            docs.append(var)\n            docs.append(', ')\n\n        elif var.startswith('opt'):\n            var = cleanup(var)\n            default_arg = arg.split()[-1][len('optIn'):] # chop off typedef and 'optIn'\n            default_arg = default_arg[0].lower() + default_arg[1:] # lowercase first letter\n\n            if arg.startswith('double'):\n                if default_arg in defaults:\n                    print('double %s=%s' % (var, defaults[default_arg]), end=' ')\n                else:\n                    print('double %s=-4e37' % var, end=' ') # TA_REAL_DEFAULT\n            elif arg.startswith('int'):\n                if default_arg in defaults:\n                    print('int %s=%s' % (var, defaults[default_arg]), end=' ')\n                else:\n                    print('int %s=-2**31' % var, end=' ')   # TA_INTEGER_DEFAULT\n            elif arg.startswith('TA_MAType'):\n                print('int %s=%s' % (var, defaults.get('matype', 0)), end=' ') # TA_MAType_SMA\n            else:\n                assert False, arg\n            if '[, ' not in docs:\n                docs[-1] = ('[, ')\n            docs.append('%s=?' % var)\n            docs.append(', ')\n\n    docs[-1] = '])' if '[, ' in docs else ')'\n    if documentation:\n        tmp_docs = []\n        lower_case = False\n        documentation = documentation.split('\\n')[2:] # discard abstract calling definition\n        for line in documentation:\n            line = line.replace('Substraction', 'Subtraction')\n            if 'prices' not in line and 'price' in line:\n                line = line.replace('price', 'real')\n            if not line or line.isspace():\n                tmp_docs.append('')\n            else:\n                tmp_docs.append('    %s' % line) # add an indent of 4 spaces\n        docs.append('\\n\\n')\n        docs.append('\\n'.join(tmp_docs))\n        docs.append('\\n    ')\n    print('):')\n    print('    \"\"\"%s\"\"\"' % ''.join(docs))\n    print('    cdef:')\n    print('        np.npy_intp length')\n    print('        int begidx, endidx, lookback')\n    print('        TA_RetCode retCode')\n\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' not in var:\n            continue\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            print('        np.ndarray %s' % var)\n        elif var.startswith('*'):\n            var = cleanup(var[1:])\n            print('        int %s' % var)\n        else:\n            assert False, arg\n\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' in var:\n            break\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                cast = '<double*>'\n            else:\n                assert False, arg\n            print('    %s = check_array(%s)' % (var, var))\n\n    # check all input array lengths are the same\n    inputs = []\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' in var:\n            break\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            inputs.append(var)\n    if len(inputs) == 1:\n        print('    length = %s.shape[0]' % inputs[0])\n    else:\n        print('    length = check_length%s(%s)' % (len(inputs), ', '.join(inputs)))\n\n    # check for all input values are non-NaN\n    print('    begidx = check_begidx%s(length, %s)' % (len(inputs), ', '.join('<double*>(%s.data)' % s for s in inputs)))\n\n    print('    endidx = <int>length - begidx - 1')\n    print('    lookback = begidx + lib.%s_Lookback(' % name, end=' ')\n    opts = [arg for arg in args if 'opt' in arg]\n    for i, opt in enumerate(opts):\n        if i > 0:\n            print(',', end=' ')\n        print(cleanup(opt.split()[-1]), end=' ')\n    print(')')\n\n    for arg in args:\n        var = arg.split()[-1]\n\n        if 'out' not in var:\n            continue\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                print('    %s = make_double_array(length, lookback)' % var)\n            elif 'int' in arg:\n                print('    %s = make_int_array(length, lookback)' % var)\n            else:\n                assert False, args\n\n    print('    retCode = lib.%s(' % name, end=' ')\n\n    for i, arg in enumerate(args):\n        if i > 0:\n            print(',', end=' ')\n        var = arg.split()[-1]\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'out' in var:\n                data = '(%s.data)+lookback' % var\n            else:\n                data = '(%s.data)+begidx' % var\n            if 'double' in arg:\n                print('<double *>%s' % data, end=' ')\n            elif 'int' in arg:\n                print('<int *>%s' % data, end=' ')\n            else:\n                assert False, arg\n\n        elif var.startswith('*'):\n            var = cleanup(var[1:])\n            print('&%s' % var, end=' ')\n\n        else:\n            cleaned = cleanup(var) if var != 'startIdx' else '0'\n            print(cleaned, end=' ')\n\n    print(')')\n    print('    _ta_check_success(\"%s\", retCode)' % name)\n    if 'INDEX' in f:\n        for arg in args:\n            var = arg.split()[-1]\n\n            if 'out' not in var:\n                continue\n\n            if var.endswith('[]'):\n                var = cleanup(var[:-2])\n                print('    %s_data = <int*>%s.data' % (var, var))\n                print('    for i from lookback <= i < length:')\n                print('        %s_data[i] += begidx' % var)\n    print('    return ', end='')\n    i = 0\n    for arg in args:\n        var = arg.split()[-1]\n        if var.endswith('[]'):\n            var = var[:-2]\n        elif var.startswith('*'):\n            var = var[1:]\n        if var.startswith('out'):\n            if var not in (\"outNBElement\", \"outBegIdx\"):\n                if i > 0:\n                    print(',', end=' ')\n                i += 1\n                print(cleanup(var), end=' ')\n        else:\n            assert re.match('.*(void|startIdx|endIdx|opt|in)/*', arg), arg\n    print('')\n    print('')\n\nprint('__TA_FUNCTION_NAMES__ = [%s]' % ','.join(['\\\"%s\\\"' % name for name in names]))\n"
  },
  {
    "path": "tools/generate_stream.py",
    "content": "import os\nimport re\nimport sys\n\nfrom talib import abstract\n\n# FIXME: initialize once, then shutdown at the end, rather than each call?\n# FIXME: should we pass startIdx and endIdx into function?\n# FIXME: don't return number of elements since it always equals allocation?\n\nfunctions = []\nif sys.platform == 'win32':\n    include_dirs = [\n        r\"c:\\ta-lib\\c\\include\",\n        r\"c:\\Program Files\\TA-Lib\\include\",\n        r\"c:\\Program Files (x86)\\TA-Lib\\include\",\n    ]\nelse:\n    include_dirs = [\n        '/usr/include',\n        '/usr/local/include',\n        '/opt/include',\n        '/opt/local/include',\n        '/opt/homebrew/include',\n        '/opt/homebrew/opt/ta-lib/include',\n    ]\n\nif 'TA_INCLUDE_PATH' in os.environ:\n    include_dirs = os.environ['TA_INCLUDE_PATH'].split(os.pathsep)\n\nheader_found = False\nfor path in include_dirs:\n    ta_func_header = os.path.join(path, 'ta-lib', 'ta_func.h')\n    if os.path.exists(ta_func_header):\n        header_found = True\n        break\nif not header_found:\n    print('Error: ta-lib/ta_func.h not found', file=sys.stderr)\n    sys.exit(1)\nwith open(ta_func_header) as f:\n    tmp = []\n    for line in f:\n        if line.startswith('TA_LIB_API'):\n            line = line[10:]\n        line = line.strip()\n        if tmp or \\\n            line.startswith('TA_RetCode TA_') or \\\n            line.startswith('int TA_'):\n            line = re.sub(r'/\\*[^\\*]+\\*/', '', line) # strip comments\n            tmp.append(line)\n            if not line:\n                s = ' '.join(tmp)\n                s = re.sub(r'\\s+', ' ', s)\n                functions.append(s)\n                tmp = []\n\n# strip \"float\" functions\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_S_')]\n\n# strip non-indicators\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_Set')]\nfunctions = [s for s in functions if not s.startswith('TA_RetCode TA_Restore')]\n\n# print headers\nprint(\"\"\"\\\ncimport numpy as np\nfrom cython import boundscheck, wraparound\ncimport _ta_lib as lib\nfrom _ta_lib cimport TA_RetCode\n# NOTE: _ta_check_success, NaN are defined in common.pxi\n\nnp.import_array() # Initialize the NumPy C API\n\"\"\")\n\n# cleanup variable names to make them more pythonic\ndef cleanup(name):\n    if name.startswith('in'):\n        return name[2:].lower()\n    elif name.startswith('optIn'):\n        return name[5:].lower()\n    else:\n        return name.lower()\n\n# print functions\nnames = []\nfor f in functions:\n    if 'Lookback' in f: # skip lookback functions\n        continue\n\n    i = f.index('(')\n    name = f[:i].split()[1]\n    args = f[i:].split(',')\n    args = [re.sub(r'[\\(\\);]', '', s).strip() for s in args]\n\n    shortname = name[3:]\n    names.append(shortname)\n    try:\n        func_info = abstract.Function(shortname).info\n        defaults, documentation = abstract._get_defaults_and_docs(func_info)\n    except:\n        print(\"cannot find defaults and docs for\", shortname, file=sys.stderr)\n        defaults, documentation = {}, \"\"\n\n    print('@wraparound(False)  # turn off relative indexing from end of lists')\n    print('@boundscheck(False) # turn off bounds-checking for entire function')\n    print('def stream_%s(' % shortname, end=' ')\n    docs = [' %s(' % shortname]\n    i = 0\n    for arg in args:\n        var = arg.split()[-1]\n\n        if var in ('startIdx', 'endIdx'):\n            continue\n\n        elif 'out' in var:\n            break\n\n        if i > 0:\n            print(',', end=' ')\n        i += 1\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            assert arg.startswith('const double'), arg\n            print('np.ndarray %s not None' % var, end=' ')\n            docs.append(var)\n            docs.append(', ')\n\n        elif var.startswith('opt'):\n            var = cleanup(var)\n            default_arg = arg.split()[-1][len('optIn'):] # chop off typedef and 'optIn'\n            default_arg = default_arg[0].lower() + default_arg[1:] # lowercase first letter\n\n            if arg.startswith('double'):\n                if default_arg in defaults:\n                    print('double %s=%s' % (var, defaults[default_arg]), end=' ')\n                else:\n                    print('double %s=-4e37' % var, end=' ') # TA_REAL_DEFAULT\n            elif arg.startswith('int'):\n                if default_arg in defaults:\n                    print('int %s=%s' % (var, defaults[default_arg]), end=' ')\n                else:\n                    print('int %s=-2**31' % var, end=' ')   # TA_INTEGER_DEFAULT\n            elif arg.startswith('TA_MAType'):\n                print('int %s=%s' % (var, defaults.get('matype', 0)), end=' ') # TA_MAType_SMA\n            else:\n                assert False, arg\n            if '[, ' not in docs:\n                docs[-1] = ('[, ')\n            docs.append('%s=?' % var)\n            docs.append(', ')\n\n    docs[-1] = '])' if '[, ' in docs else ')'\n    if documentation:\n        tmp_docs = []\n        lower_case = False\n        documentation = documentation.split('\\n')[2:] # discard abstract calling definition\n        for line in documentation:\n            line = line.replace('Substraction', 'Subtraction')\n            if 'prices' not in line and 'price' in line:\n                line = line.replace('price', 'real')\n            if not line or line.isspace():\n                tmp_docs.append('')\n            else:\n                tmp_docs.append('    %s' % line) # add an indent of 4 spaces\n        docs.append('\\n\\n')\n        docs.append('\\n'.join(tmp_docs))\n        docs.append('\\n    ')\n    print('):')\n    print('    \"\"\"%s\"\"\"' % ''.join(docs))\n    print('    cdef:')\n    print('        np.npy_intp length')\n    print('        TA_RetCode retCode')\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' in var:\n            break\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                print('        double* %s_data' % var)\n            elif 'int' in arg:\n                print('        int* %s_data' % var)\n            else:\n                assert False, args\n\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' not in var:\n            continue\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                print('        double %s' % var)\n            elif 'int' in arg:\n                print('        int %s' % var)\n            else:\n                assert False, args\n        elif var.startswith('*'):\n            var = cleanup(var[1:])\n            print('        int %s' % var)\n        else:\n            assert False, arg\n\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' in var:\n            break\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                cast = '<double*>'\n            else:\n                assert False, arg\n            print('    %s = check_array(%s)' % (var, var))\n            print('    %s_data = %s%s.data' % (var, cast, var))\n\n    # check all input array lengths are the same\n    inputs = []\n    for arg in args:\n        var = arg.split()[-1]\n        if 'out' in var:\n            break\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            inputs.append(var)\n\n    if len(inputs) == 1:\n        print('    length = %s.shape[0]' % inputs[0])\n    else:\n        print('    length = check_length%s(%s)' % (len(inputs), ', '.join(inputs)))\n\n    for arg in args:\n        var = arg.split()[-1]\n\n        if 'out' not in var:\n            continue\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'double' in arg:\n                print('    %s = NaN' % var)\n            elif 'int' in arg:\n                print('    %s = 0' % var)\n            else:\n                assert False, args\n\n    print('    retCode = lib.%s(' % name, end=' ')\n\n    for i, arg in enumerate(args):\n        if i > 0:\n            print(',', end=' ')\n        var = arg.split()[-1]\n\n        if var.endswith('[]'):\n            var = cleanup(var[:-2])\n            if 'out' in var:\n                print('&%s' % var, end=' ')\n            else:\n                print('%s_data' % var, end=' ')\n\n        elif var.startswith('*'):\n            var = cleanup(var[1:])\n            print('&%s' % var, end=' ')\n\n        elif var in ('startIdx', 'endIdx'):\n            print('<int>(length) - 1', end= ' ')\n\n        else:\n            cleaned = cleanup(var)\n            print(cleaned, end=' ')\n\n    print(')')\n    print('    _ta_check_success(\"%s\", retCode)' % name)\n    print('    return ', end='')\n    i = 0\n    for arg in args:\n        var = arg.split()[-1]\n        if var.endswith('[]'):\n            var = var[:-2]\n        elif var.startswith('*'):\n            var = var[1:]\n        if var.startswith('out'):\n            if var not in (\"outNBElement\", \"outBegIdx\"):\n                if i > 0:\n                    print(',', end=' ')\n                i += 1\n                print(cleanup(var), end=' ')\n        else:\n            assert re.match('.*(void|startIdx|endIdx|opt|in)/*', arg), arg\n    print('')\n    print('')\n\n"
  },
  {
    "path": "tools/perf_talib.py",
    "content": "import numpy\nimport talib\nimport time\nimport sys\n\nTEST_LEN = int(sys.argv[1]) if len(sys.argv) > 1 else 10000\nLOOPS = int(sys.argv[2]) if len(sys.argv) > 2 else 1000\n\ndata = numpy.random.random(TEST_LEN)\n\nif False: # fill array with nans\n    data[:-1] = numpy.nan\n\nt0 = time.time()\nfor _ in range(LOOPS):\n    talib.MA(data)\n    talib.BBANDS(data)\n    talib.KAMA(data)\n    talib.CDLMORNINGDOJISTAR(data, data, data, data)\nt1 = time.time()\nprint('test_len: %d, loops: %d' % (TEST_LEN, LOOPS))\nprint('%.6f' % (t1 - t0))\nprint('%.6f' % ((t1 - t0) / LOOPS))\n"
  },
  {
    "path": "tools/threads_talib.py",
    "content": "import time\nimport threading\n\nimport numpy\nimport copy\nfrom talib.abstract import RSI\nimport sys\nimport pandas as pd\n\nTEST_LEN_SHORT = int(sys.argv[1]) if len(sys.argv) > 1 else 999\nTEST_LEN_LONG = int(sys.argv[1]) if len(sys.argv) > 1 else 4005\nLOOPS = int(sys.argv[2]) if len(sys.argv) > 2 else 1000\n\ndata_short = numpy.random.rand(TEST_LEN_SHORT, 5)\ndata_long = numpy.random.rand(TEST_LEN_LONG, 5)\n\ndf_short = pd.DataFrame(data_short, columns={\n                        'open', 'high', 'low', 'close', 'volume'})\ndf_long = pd.DataFrame(data_long, columns={\n                       'open', 'high', 'low', 'close', 'volume'})\n\ntotal = 0\n\n\ndef loop():\n    global total\n    if threading.get_native_id() % 2 == 0:\n        df = copy.deepcopy(df_short)\n    else:\n        df = copy.deepcopy(df_long)\n\n    while total < LOOPS:\n        total += 1\n        try:\n            df['RSI'] = RSI(df)\n        except ValueError as msg:\n            raise ValueError(msg)\n\n\nt0 = time.time()\n\nthreads = []\nfor i in range(4):\n    t = threading.Thread(target=loop)\n    threads.append(t)\n    t.start()\n\nfor t in threads:\n    t.join()\nt1 = time.time()\nprint('test_len: %d, loops: %d' % (TEST_LEN_LONG, LOOPS))\nprint('%.6f' % (t1 - t0))\nprint('%.6f' % ((t1 - t0) / LOOPS))\n"
  }
]