gitextract__p1idbhy/ ├── .gitattributes ├── .gitignore ├── .readthedocs.yml ├── .runsettings ├── FUNDING.yml ├── LICENSE ├── README.md ├── Version.txt ├── config/ │ ├── xloil.ini │ ├── xloil_local.ini │ └── xloil_local_32.ini ├── docs/ │ ├── Excel Function Numbers.xlsx │ ├── make.cmd │ ├── requirements.txt │ ├── source/ │ │ ├── Concepts.rst │ │ ├── Core.rst │ │ ├── Developer.rst │ │ ├── Events.rst │ │ ├── Introduction.rst │ │ ├── conf.py │ │ ├── index.rst │ │ ├── xlOil_Core_Functions.rst │ │ ├── xlOil_Cpp/ │ │ │ ├── COM.rst │ │ │ ├── CppRtd.rst │ │ │ ├── CustomGUI.rst │ │ │ ├── DynamicRegistration.rst │ │ │ ├── Events.rst │ │ │ ├── GettingStarted.rst │ │ │ ├── ObjectHandles.rst │ │ │ ├── SpecialArgs.rst │ │ │ ├── StaticXLLs.rst │ │ │ └── index.rst │ │ ├── xlOil_Python/ │ │ │ ├── BuiltInUDFs.rst │ │ │ ├── Concepts.rst │ │ │ ├── CustomGUI.rst │ │ │ ├── Debugging.rst │ │ │ ├── DistributingAddins.rst │ │ │ ├── Dynamic.rst │ │ │ ├── Example.rst │ │ │ ├── ExampleGUI.rst │ │ │ ├── ExampleRTD.rst │ │ │ ├── ExcelApplication.rst │ │ │ ├── ExternalPackages.rst │ │ │ ├── FAQ.rst │ │ │ ├── Functions.rst │ │ │ ├── GettingStarted.rst │ │ │ ├── Jupyter.rst │ │ │ ├── ModuleReference.rst │ │ │ ├── Rtd.rst │ │ │ ├── TypeConversion.rst │ │ │ └── index.rst │ │ ├── xlOil_SQL/ │ │ │ └── index.rst │ │ ├── xlOil_Utils.rst │ │ └── xloil.doxyfile │ └── xlOil-Sphinx.code-workspace ├── external/ │ ├── Excel2013SDK/ │ │ ├── INCLUDE/ │ │ │ └── XLCALL.H │ │ ├── LIB/ │ │ │ ├── WIn32/ │ │ │ │ └── XLCALL32.LIB │ │ │ └── x64/ │ │ │ └── XLCALL32.LIB │ │ └── SRC/ │ │ ├── ReadMe.txt │ │ └── XLCALL.CPP │ ├── Sources.txt │ └── boost-1.67/ │ └── boost/ │ └── preprocessor/ │ ├── arithmetic/ │ │ ├── add.hpp │ │ ├── dec.hpp │ │ ├── detail/ │ │ │ └── div_base.hpp │ │ ├── div.hpp │ │ ├── inc.hpp │ │ ├── mod.hpp │ │ ├── mul.hpp │ │ └── sub.hpp │ ├── arithmetic.hpp │ ├── array/ │ │ ├── data.hpp │ │ ├── detail/ │ │ │ └── get_data.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── insert.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_list.hpp │ │ ├── to_seq.hpp │ │ └── to_tuple.hpp │ ├── array.hpp │ ├── assert_msg.hpp │ ├── cat.hpp │ ├── comma.hpp │ ├── comma_if.hpp │ ├── comparison/ │ │ ├── equal.hpp │ │ ├── greater.hpp │ │ ├── greater_equal.hpp │ │ ├── less.hpp │ │ ├── less_equal.hpp │ │ └── not_equal.hpp │ ├── comparison.hpp │ ├── config/ │ │ ├── config.hpp │ │ └── limits.hpp │ ├── control/ │ │ ├── deduce_d.hpp │ │ ├── detail/ │ │ │ ├── dmc/ │ │ │ │ └── while.hpp │ │ │ ├── edg/ │ │ │ │ └── while.hpp │ │ │ ├── msvc/ │ │ │ │ └── while.hpp │ │ │ └── while.hpp │ │ ├── expr_if.hpp │ │ ├── expr_iif.hpp │ │ ├── if.hpp │ │ ├── iif.hpp │ │ └── while.hpp │ ├── control.hpp │ ├── debug/ │ │ ├── assert.hpp │ │ ├── error.hpp │ │ └── line.hpp │ ├── debug.hpp │ ├── dec.hpp │ ├── detail/ │ │ ├── auto_rec.hpp │ │ ├── check.hpp │ │ ├── dmc/ │ │ │ └── auto_rec.hpp │ │ ├── is_binary.hpp │ │ ├── is_nullary.hpp │ │ ├── is_unary.hpp │ │ ├── null.hpp │ │ └── split.hpp │ ├── empty.hpp │ ├── enum.hpp │ ├── enum_params.hpp │ ├── enum_params_with_a_default.hpp │ ├── enum_params_with_defaults.hpp │ ├── enum_shifted.hpp │ ├── enum_shifted_params.hpp │ ├── expand.hpp │ ├── expr_if.hpp │ ├── facilities/ │ │ ├── apply.hpp │ │ ├── detail/ │ │ │ └── is_empty.hpp │ │ ├── empty.hpp │ │ ├── expand.hpp │ │ ├── identity.hpp │ │ ├── intercept.hpp │ │ ├── is_1.hpp │ │ ├── is_empty.hpp │ │ ├── is_empty_or_1.hpp │ │ ├── is_empty_variadic.hpp │ │ └── overload.hpp │ ├── facilities.hpp │ ├── for.hpp │ ├── identity.hpp │ ├── if.hpp │ ├── inc.hpp │ ├── iterate.hpp │ ├── iteration/ │ │ ├── detail/ │ │ │ ├── bounds/ │ │ │ │ ├── lower1.hpp │ │ │ │ ├── lower2.hpp │ │ │ │ ├── lower3.hpp │ │ │ │ ├── lower4.hpp │ │ │ │ ├── lower5.hpp │ │ │ │ ├── upper1.hpp │ │ │ │ ├── upper2.hpp │ │ │ │ ├── upper3.hpp │ │ │ │ ├── upper4.hpp │ │ │ │ └── upper5.hpp │ │ │ ├── finish.hpp │ │ │ ├── iter/ │ │ │ │ ├── forward1.hpp │ │ │ │ ├── forward2.hpp │ │ │ │ ├── forward3.hpp │ │ │ │ ├── forward4.hpp │ │ │ │ ├── forward5.hpp │ │ │ │ ├── reverse1.hpp │ │ │ │ ├── reverse2.hpp │ │ │ │ ├── reverse3.hpp │ │ │ │ ├── reverse4.hpp │ │ │ │ └── reverse5.hpp │ │ │ ├── local.hpp │ │ │ ├── rlocal.hpp │ │ │ ├── self.hpp │ │ │ └── start.hpp │ │ ├── iterate.hpp │ │ ├── local.hpp │ │ └── self.hpp │ ├── iteration.hpp │ ├── library.hpp │ ├── limits.hpp │ ├── list/ │ │ ├── adt.hpp │ │ ├── append.hpp │ │ ├── at.hpp │ │ ├── cat.hpp │ │ ├── detail/ │ │ │ ├── dmc/ │ │ │ │ └── fold_left.hpp │ │ │ ├── edg/ │ │ │ │ ├── fold_left.hpp │ │ │ │ └── fold_right.hpp │ │ │ ├── fold_left.hpp │ │ │ └── fold_right.hpp │ │ ├── enum.hpp │ │ ├── filter.hpp │ │ ├── first_n.hpp │ │ ├── fold_left.hpp │ │ ├── fold_right.hpp │ │ ├── for_each.hpp │ │ ├── for_each_i.hpp │ │ ├── for_each_product.hpp │ │ ├── rest_n.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_seq.hpp │ │ ├── to_tuple.hpp │ │ └── transform.hpp │ ├── list.hpp │ ├── logical/ │ │ ├── and.hpp │ │ ├── bitand.hpp │ │ ├── bitnor.hpp │ │ ├── bitor.hpp │ │ ├── bitxor.hpp │ │ ├── bool.hpp │ │ ├── compl.hpp │ │ ├── nor.hpp │ │ ├── not.hpp │ │ ├── or.hpp │ │ └── xor.hpp │ ├── logical.hpp │ ├── max.hpp │ ├── min.hpp │ ├── punctuation/ │ │ ├── comma.hpp │ │ ├── comma_if.hpp │ │ ├── detail/ │ │ │ └── is_begin_parens.hpp │ │ ├── is_begin_parens.hpp │ │ ├── paren.hpp │ │ ├── paren_if.hpp │ │ └── remove_parens.hpp │ ├── punctuation.hpp │ ├── repeat.hpp │ ├── repeat_2nd.hpp │ ├── repeat_3rd.hpp │ ├── repeat_from_to.hpp │ ├── repeat_from_to_2nd.hpp │ ├── repeat_from_to_3rd.hpp │ ├── repetition/ │ │ ├── deduce_r.hpp │ │ ├── deduce_z.hpp │ │ ├── detail/ │ │ │ ├── dmc/ │ │ │ │ └── for.hpp │ │ │ ├── edg/ │ │ │ │ └── for.hpp │ │ │ ├── for.hpp │ │ │ └── msvc/ │ │ │ └── for.hpp │ │ ├── enum.hpp │ │ ├── enum_binary_params.hpp │ │ ├── enum_params.hpp │ │ ├── enum_params_with_a_default.hpp │ │ ├── enum_params_with_defaults.hpp │ │ ├── enum_shifted.hpp │ │ ├── enum_shifted_binary_params.hpp │ │ ├── enum_shifted_params.hpp │ │ ├── enum_trailing.hpp │ │ ├── enum_trailing_binary_params.hpp │ │ ├── enum_trailing_params.hpp │ │ ├── for.hpp │ │ ├── repeat.hpp │ │ └── repeat_from_to.hpp │ ├── repetition.hpp │ ├── selection/ │ │ ├── max.hpp │ │ └── min.hpp │ ├── selection.hpp │ ├── seq/ │ │ ├── cat.hpp │ │ ├── detail/ │ │ │ ├── binary_transform.hpp │ │ │ ├── is_empty.hpp │ │ │ ├── split.hpp │ │ │ └── to_list_msvc.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── filter.hpp │ │ ├── first_n.hpp │ │ ├── fold_left.hpp │ │ ├── fold_right.hpp │ │ ├── for_each.hpp │ │ ├── for_each_i.hpp │ │ ├── for_each_product.hpp │ │ ├── insert.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── rest_n.hpp │ │ ├── reverse.hpp │ │ ├── seq.hpp │ │ ├── size.hpp │ │ ├── subseq.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ ├── to_tuple.hpp │ │ ├── transform.hpp │ │ └── variadic_seq_to_seq.hpp │ ├── seq.hpp │ ├── slot/ │ │ ├── counter.hpp │ │ ├── detail/ │ │ │ ├── counter.hpp │ │ │ ├── def.hpp │ │ │ ├── shared.hpp │ │ │ ├── slot1.hpp │ │ │ ├── slot2.hpp │ │ │ ├── slot3.hpp │ │ │ ├── slot4.hpp │ │ │ └── slot5.hpp │ │ └── slot.hpp │ ├── slot.hpp │ ├── stringize.hpp │ ├── tuple/ │ │ ├── detail/ │ │ │ └── is_single_return.hpp │ │ ├── eat.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── insert.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── rem.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ └── to_seq.hpp │ ├── tuple.hpp │ ├── variadic/ │ │ ├── detail/ │ │ │ └── is_single_return.hpp │ │ ├── elem.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ ├── to_seq.hpp │ │ └── to_tuple.hpp │ ├── variadic.hpp │ ├── while.hpp │ └── wstringize.hpp ├── include/ │ └── xloil/ │ ├── AppObjects.h │ ├── ArrayBuilder.h │ ├── Async.h │ ├── AutoBind.h │ ├── Caller.h │ ├── Date.h │ ├── DynamicRegister.h │ ├── EnumHelper.h │ ├── Events.h │ ├── ExcelArray.h │ ├── ExcelCall.h │ ├── ExcelObj.h │ ├── ExcelObjCache.h │ ├── ExcelRef.h │ ├── ExcelThread.h │ ├── ExcelTypeLib.h │ ├── ExcelUI.h │ ├── ExportMacro.h │ ├── FPArray.h │ ├── FuncSpec.h │ ├── Interface.h │ ├── Limits.h │ ├── Log.h │ ├── LogWindow.h │ ├── NumericTypeConverters.h │ ├── ObjectCache.h │ ├── PString.h │ ├── Plugin.h │ ├── Preprocessor.h │ ├── Range.h │ ├── Register.h │ ├── RtdServer.h │ ├── State.h │ ├── StaticRegister.h │ ├── StringUtils.h │ ├── Throw.h │ ├── TypeConverters.h │ ├── Version.h │ ├── WindowsSlim.h │ ├── XlCallSlim.h │ ├── XllEntryPoint.h │ └── xlOil.h ├── libs/ │ ├── SetRoot.props │ ├── xlOilPlugin.props │ ├── xlOilStaticLib.props │ ├── xlOil_Python/ │ │ ├── ArrayHelpers.h │ │ ├── AsyncFunctions.cpp │ │ ├── AsyncFunctions.h │ │ ├── CPython.h │ │ ├── EventLoop.cpp │ │ ├── EventLoop.h │ │ ├── Loader/ │ │ │ ├── StubLoader.cpp │ │ │ └── xlOil_Python.vcxproj │ │ ├── Main.cpp │ │ ├── Package/ │ │ │ ├── TestConfig.py │ │ │ ├── generate_stubs.py │ │ │ ├── setup.py │ │ │ ├── test_JupyterConnection.py │ │ │ ├── test_PythonAutomation.py │ │ │ ├── test_SpreadsheetRunner.py │ │ │ ├── xlOil_Python_Package.pyproj │ │ │ └── xloil/ │ │ │ ├── __init__.py │ │ │ ├── _core.py │ │ │ ├── _event_loop.py │ │ │ ├── _paths.py │ │ │ ├── _pyinstaller/ │ │ │ │ ├── __init__.py │ │ │ │ └── hook-xloil.py │ │ │ ├── _superreload.py │ │ │ ├── com.py │ │ │ ├── command_line.py │ │ │ ├── debug.py │ │ │ ├── excelfuncs.py │ │ │ ├── func_inspect.py │ │ │ ├── gui/ │ │ │ │ ├── __init__.py │ │ │ │ ├── qt_console.py │ │ │ │ ├── qtpy.py │ │ │ │ ├── tk_console.py │ │ │ │ ├── tkinter.py │ │ │ │ └── wx.py │ │ │ ├── importer.py │ │ │ ├── jupyter.py │ │ │ ├── jupyter_kernel.py │ │ │ ├── logging.py │ │ │ ├── matplotlib.py │ │ │ ├── pandas.py │ │ │ ├── pillow.py │ │ │ ├── register.py │ │ │ ├── rtd.py │ │ │ ├── stubs/ │ │ │ │ ├── __init__.py │ │ │ │ └── xloil_core/ │ │ │ │ ├── __init__.py │ │ │ │ └── event/ │ │ │ │ └── __init__.py │ │ │ ├── type_converters.py │ │ │ └── xloil_ribbon.py │ │ ├── PyAddin.cpp │ │ ├── PyAddin.h │ │ ├── PyAddress.cpp │ │ ├── PyAddress.h │ │ ├── PyAppCallRun.cpp │ │ ├── PyAppCallRun.h │ │ ├── PyAppObjects.cpp │ │ ├── PyCOM.cpp │ │ ├── PyCOM.h │ │ ├── PyCache.cpp │ │ ├── PyCache.h │ │ ├── PyCore.cpp │ │ ├── PyCore.h │ │ ├── PyEvents.cpp │ │ ├── PyEvents.h │ │ ├── PyFunctionRegister.cpp │ │ ├── PyFunctionRegister.h │ │ ├── PyFuture.h │ │ ├── PyHelpers.cpp │ │ ├── PyHelpers.h │ │ ├── PyImage.cpp │ │ ├── PyImage.h │ │ ├── PyLogWriter.cpp │ │ ├── PyObjectGC.cpp │ │ ├── PyRibbon.cpp │ │ ├── PyRtd.cpp │ │ ├── PyRtd.h │ │ ├── PyRunLater.cpp │ │ ├── PySettings.props │ │ ├── PySettings310.props │ │ ├── PySettings311.props │ │ ├── PySettings312.props │ │ ├── PySettings313.props │ │ ├── PySettings314.props │ │ ├── PySettings36.props │ │ ├── PySettings37.props │ │ ├── PySettings38.props │ │ ├── PySettings39.props │ │ ├── PySource.cpp │ │ ├── PySource.h │ │ ├── PyStatusBar.cpp │ │ ├── TypeConversion/ │ │ │ ├── BasicTypes.cpp │ │ │ ├── BasicTypes.h │ │ │ ├── ConverterInterface.h │ │ │ ├── Numpy.h │ │ │ ├── NumpyDatetime.cpp │ │ │ ├── NumpyDatetime.h │ │ │ ├── NumpyFromExcel.cpp │ │ │ ├── NumpyHelpers.cpp │ │ │ ├── NumpyHelpers.h │ │ │ ├── NumpyPandas.cpp │ │ │ ├── NumpyToExcel.cpp │ │ │ ├── PyCustomType.cpp │ │ │ ├── PyDateType.cpp │ │ │ ├── PyDateType.h │ │ │ ├── PyDictType.cpp │ │ │ ├── PyDictType.h │ │ │ ├── PyExcelArrayType.cpp │ │ │ ├── PyExcelArrayType.h │ │ │ ├── PyRangeType.cpp │ │ │ ├── PyTupleType.cpp │ │ │ └── PyTupleType.h │ │ ├── xlOil_Python310.vcxproj │ │ ├── xlOil_Python311.vcxproj │ │ ├── xlOil_Python312.vcxproj │ │ ├── xlOil_Python313.vcxproj │ │ ├── xlOil_Python314.vcxproj │ │ ├── xlOil_Python36.vcxproj │ │ ├── xlOil_Python37.vcxproj │ │ ├── xlOil_Python38.vcxproj │ │ ├── xlOil_Python39.vcxproj │ │ └── xlOil_Python39.vcxproj.filters │ ├── xlOil_SQL/ │ │ ├── Cache.cpp │ │ ├── Cache.h │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── Main.cpp │ │ ├── XlArrayTable.cpp │ │ ├── XlArrayTable.h │ │ ├── xlOil_SQL.vcxproj │ │ ├── xlOil_SQL.vcxproj.filters │ │ ├── xloSql.cpp │ │ ├── xloSqlDB.cpp │ │ ├── xloSqlQuery.cpp │ │ ├── xloSqlTable.cpp │ │ └── xloSqlTables.cpp │ └── xlOil_Utils/ │ ├── Main.cpp │ ├── RegexHelpers.h │ ├── xlOil_Utils.vcxproj │ ├── xloBlock.cpp │ ├── xloConcat.cpp │ ├── xloFill.cpp │ ├── xloFillNA.cpp │ ├── xloIndex.cpp │ ├── xloPad.cpp │ ├── xloRegex.cpp │ ├── xloSearch.cpp │ ├── xloSort.cpp │ └── xloSplit.cpp ├── src/ │ ├── BuildPaths.props │ ├── Common.props │ ├── Debug.props │ ├── Release.props │ ├── external/ │ │ ├── asmjit.vcxproj │ │ ├── rdcfswatcher.vcxproj │ │ └── spdlog.vcxproj │ ├── xlOil/ │ │ ├── Interface.cpp │ │ ├── Loaders/ │ │ │ ├── AddinLoader.cpp │ │ │ ├── AddinLoader.h │ │ │ ├── CoreEntryPoint.cpp │ │ │ ├── CoreEntryPoint.h │ │ │ ├── PluginLoader.cpp │ │ │ └── PluginLoader.h │ │ ├── Log.cpp │ │ ├── xlOil.vcxproj │ │ └── xlOil.vcxproj.filters │ ├── xlOil-COM/ │ │ ├── API/ │ │ │ ├── ComUtils.cpp │ │ │ ├── Events.cpp │ │ │ ├── ExcelRange.cpp │ │ │ ├── ExcelThread.cpp │ │ │ └── RtdServer.cpp │ │ ├── AppObjects.cpp │ │ ├── ClassFactory.cpp │ │ ├── ClassFactory.h │ │ ├── ComAddin.cpp │ │ ├── ComAddin.h │ │ ├── ComEventSink.cpp │ │ ├── ComEventSink.h │ │ ├── ComVariant.cpp │ │ ├── ComVariant.h │ │ ├── Connect.cpp │ │ ├── Connect.h │ │ ├── CustomTaskPane.cpp │ │ ├── CustomTaskPane.h │ │ ├── RibbonExtensibility.cpp │ │ ├── RibbonExtensibility.h │ │ ├── RtdAsyncManager.cpp │ │ ├── RtdAsyncManager.h │ │ ├── RtdManager.cpp │ │ ├── RtdManager.h │ │ ├── RtdServerWorker.h │ │ ├── TaskPaneHostControl.cpp │ │ ├── TaskPaneHostControl.h │ │ ├── WorkbookScopeFunctions.cpp │ │ ├── WorkbookScopeFunctions.h │ │ ├── XllContextInvoke.cpp │ │ ├── XllContextInvoke.h │ │ ├── xlOil-COM.vcxproj │ │ └── xlOil-COM.vcxproj.filters │ ├── xlOil-Dynamic/ │ │ ├── DynamicRegistration.cpp │ │ ├── ExternalRegionAllocator.h │ │ ├── LocalFunctions.cpp │ │ ├── LocalFunctions.h │ │ ├── PEHelper.cpp │ │ ├── PEHelper.h │ │ ├── Thunker.cpp │ │ ├── Thunker.h │ │ ├── xlOil-Dynamic.vcxproj │ │ └── xlOil-Dynamic.vcxproj.filters │ ├── xlOil-Funcs/ │ │ ├── ExcelObjCache.cpp │ │ ├── xlOil-Funcs.vcxproj │ │ ├── xlOil-Funcs.vcxproj.filters │ │ ├── xloHelp.cpp │ │ ├── xloLog.cpp │ │ ├── xloReload.cpp │ │ └── xloVersion.cpp │ ├── xlOil-Loader/ │ │ ├── LoaderEntryPoint.cpp │ │ ├── xlOil-Loader.vcxproj │ │ └── xlOilAddin.def │ ├── xlOil-XLL/ │ │ ├── ArrayBuilder.cpp │ │ ├── Async.cpp │ │ ├── Caller.cpp │ │ ├── Date.cpp │ │ ├── ExcelArray.cpp │ │ ├── ExcelCall.cpp │ │ ├── ExcelCallMapping.h │ │ ├── ExcelObj.cpp │ │ ├── ExcelRef.cpp │ │ ├── FPArray.cpp │ │ ├── FuncRegistry.cpp │ │ ├── FuncRegistry.h │ │ ├── Intellisense.cpp │ │ ├── Intellisense.h │ │ ├── Log.cpp │ │ ├── LogWindow.cpp │ │ ├── LogWindowSink.cpp │ │ ├── LogWindowSink.h │ │ ├── State.cpp │ │ ├── StaticRegister.cpp │ │ ├── Throw.cpp │ │ ├── XlCall.cpp │ │ ├── XllEvents.cpp │ │ ├── xlOil-XLL.vcxproj │ │ └── xlOil-XLL.vcxproj.filters │ └── xlOilHelpers/ │ ├── Environment.cpp │ ├── Environment.h │ ├── Exception.h │ ├── GuidUtils.cpp │ ├── GuidUtils.h │ ├── Settings.cpp │ ├── Settings.h │ ├── Utils.h │ └── xlOilHelpers.vcxproj ├── tests/ │ ├── AutoSheets/ │ │ ├── PythonTest.py │ │ ├── PythonTest.xlsx │ │ ├── TestModule.py │ │ ├── TestSQL.xlsx │ │ ├── TestUtils.ipynb │ │ └── TestUtils.xlsx │ ├── CodePageConversion.cpp │ ├── Date.cpp │ ├── Environment.cpp │ ├── ManualSheets/ │ │ ├── python/ │ │ │ ├── PySpeedTest.py │ │ │ ├── PySpeedTest.xlsm │ │ │ ├── PythonRTDTest.py │ │ │ ├── PythonRTDTest.xlsx │ │ │ ├── PythonTestAsync.py │ │ │ ├── PythonTestAsync.xlsm │ │ │ ├── PythonTestUI.py │ │ │ ├── PythonTestUI.xlsm │ │ │ ├── TestJupyter.xlsx │ │ │ └── TestJupyterConnection.ipynb │ │ └── rtd/ │ │ └── RtdTest.xlsx │ ├── PString.cpp │ ├── TestAddin/ │ │ ├── AutoBind.cpp │ │ ├── CacheTest.cpp │ │ ├── CacheTest2.cpp │ │ ├── CallbackTest.cpp │ │ ├── ExoticArgTest.cpp │ │ ├── Main.cpp │ │ ├── RtdServerTest.cpp │ │ ├── TestAddin.vcxproj │ │ ├── TestAddin.vcxproj.filters │ │ └── TestTestAddin.xlsx │ ├── TestArrayBuilder.cpp │ ├── TestCOM.cpp │ ├── TestCache.cpp │ ├── TestExcelCall.cpp │ ├── TestExcelObj.cpp │ ├── TestGuid.cpp │ ├── TestRange.cpp │ ├── TestSimpleAllocator.cpp │ ├── TestStringUtils.cpp │ ├── TestTempFile.cpp │ ├── TestThunker.cpp │ ├── Tests.vcxproj │ └── Tests.vcxproj.filters ├── tools/ │ ├── BuildRelease.cmd │ ├── DownloadDependencies.cmd │ ├── WriteInclude.ps1 │ ├── WriteVersion.ps1 │ ├── stage.py │ ├── xlOil_Install.ps1 │ ├── xlOil_NewAddin.ps1 │ ├── xlOil_RegistryClean.ps1 │ └── xlOil_Remove.ps1 └── xlOil.sln