diff --git a/.gitignore b/.gitignore index 82c1128..1e2d079 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,8 @@ # Temporary files foo* tmp* +.ipynb_checkpoints + +# MacOS index files +.DS_Store + diff --git a/README.org b/README.org index c95593b..26f18c4 100644 --- a/README.org +++ b/README.org @@ -38,7 +38,7 @@ python3 -m pip install -r requirements.txt # Or separately: pip install --upgrade pip - pip install ipython pyyaml pandas + pip install ipython pyyaml pandas jupyter #+END_SRC "Install" for local development: diff --git a/bin/sarif-extract-multi b/bin/sarif-extract-multi index 3938f3a..b654ecb 100755 --- a/bin/sarif-extract-multi +++ b/bin/sarif-extract-multi @@ -6,9 +6,10 @@ import json import pathlib from sarif_cli import signature, signature_multi from sarif_cli import typegraph +from dataclasses import dataclass import sarif_cli.table_joins as tj import sys -from collections import defaultdict +from collections import UserDict import pandas as pd # @@ -62,27 +63,43 @@ typegraph.attach_tables(tgraph) # # Form dataframes originally introduced by sarif-extract-tables # +@dataclass +class BaseTables: + kind_problem : pd.DataFrame + kind_pathproblem : pd.DataFrame + codeflows : pd.DataFrame + relatedLocations : pd.DataFrame + project : pd.DataFrame + rules : pd.DataFrame + artifacts : pd.DataFrame + def __init__(self): pass + +bt = BaseTables() + sf_2683 = tj.joins_for_sf_2683(tgraph) -kind_problem = tj.joins_for_problem(tgraph, sf_2683) -kind_pathproblem = tj.joins_for_path_problem(tgraph, sf_2683) -codeflows_9799 = tj.joins_for_codeflows(tgraph, sf_2683) -related_locations = tj.joins_for_relatedLocations(tgraph, sf_2683) +bt.kind_problem = tj.joins_for_problem(tgraph, sf_2683) +bt.kind_pathproblem = tj.joins_for_path_problem(tgraph, sf_2683) +bt.codeflows = tj.joins_for_codeflows(tgraph, sf_2683) +bt.relatedLocations = tj.joins_for_relatedLocations(tgraph, sf_2683) # # Form the new dataframes # -project_df = tj.joins_for_project(tgraph) -artifacts_df = tj.joins_for_artifacts(tgraph) +bt.project = tj.joins_for_project(tgraph) +bt.rules = tj.joins_for_rules(tgraph) +bt.artifacts = tj.joins_for_artifacts(tgraph) # # Write output # p = pathlib.Path(args.outdir) p.mkdir(exist_ok=True) def write(path, frame): - with p.joinpath(path).open(mode='wb') as fh: + with p.joinpath(path + ".csv").open(mode='wb') as fh: frame.to_csv(fh, index_label='index') -write('problem.csv', kind_problem) -write('path-problem.csv', kind_pathproblem) -write('codeflows.csv', codeflows_9799) -write('related-locations.csv', related_locations) -write('project.csv', project_df) -write('artifacts.csv', artifacts_df) +write('kind_problem', bt.kind_problem) +write('kind_pathproblem', bt.kind_pathproblem) +write('codeflows', bt.codeflows) +write('relatedLocations', bt.relatedLocations) +write('project', bt.project) +write('rules', bt.rules) +write('artifacts', bt.artifacts) + diff --git a/requirements.txt b/requirements.txt index 13351b9..a442d69 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,68 @@ appnope==0.1.2 +argon2-cffi==21.3.0 +argon2-cffi-bindings==21.2.0 +asttokens==2.0.5 +attrs==21.4.0 backcall==0.2.0 -decorator==5.1.0 -ipython==7.28.0 -jedi==0.18.0 +beautifulsoup4==4.10.0 +bleach==4.1.0 +cffi==1.15.0 +debugpy==1.5.1 +decorator==5.1.1 +defusedxml==0.7.1 +entrypoints==0.4 +executing==0.8.3 +ipykernel==6.9.2 +ipython==8.1.1 +ipython-genutils==0.2.0 +ipywidgets==7.6.5 +jedi==0.18.1 +Jinja2==3.0.3 +jsonschema==4.4.0 +jupyter==1.0.0 +jupyter-client==7.1.2 +jupyter-console==6.4.3 +jupyter-core==4.9.2 +jupyterlab-pygments==0.1.2 +jupyterlab-widgets==1.0.2 +MarkupSafe==2.1.1 matplotlib-inline==0.1.3 -parso==0.8.2 +mistune==0.8.4 +nbclient==0.5.13 +nbconvert==6.4.4 +nbformat==5.2.0 +nest-asyncio==1.5.4 +notebook==6.4.10 +numpy==1.22.3 +packaging==21.3 +pandas==1.4.1 +pandocfilters==1.5.0 +parso==0.8.3 pexpect==4.8.0 pickleshare==0.7.5 -prompt-toolkit==3.0.20 +prometheus-client==0.13.1 +prompt-toolkit==3.0.28 +psutil==5.9.0 ptyprocess==0.7.0 -Pygments==2.10.0 +pure-eval==0.2.2 +pycparser==2.21 +Pygments==2.11.2 +pyparsing==3.0.7 +pyrsistent==0.18.1 +python-dateutil==2.8.2 +pytz==2021.3 PyYAML==6.0 -traitlets==5.1.0 +pyzmq==22.3.0 +qtconsole==5.2.2 +QtPy==2.0.1 +Send2Trash==1.8.0 +six==1.16.0 +soupsieve==2.3.1 +stack-data==0.2.0 +terminado==0.13.3 +testpath==0.6.0 +tornado==6.1 +traitlets==5.1.1 wcwidth==0.2.5 +webencodings==0.5.1 +widgetsnbextension==3.5.2 diff --git a/sarif_cli/table_joins.py b/sarif_cli/table_joins.py index 4348107..a3bc299 100644 --- a/sarif_cli/table_joins.py +++ b/sarif_cli/table_joins.py @@ -6,6 +6,7 @@ provides those for the other tables. """ import pandas as pd +from .typegraph import tagged_array_columns, tagged_struct_columns def joins_for_sf_2683(tgraph): """ @@ -256,31 +257,6 @@ def joins_for_project(tgraph): .drop(columns=['driver', 'struct_id']) .rename(columns={"version": "driver_version_7820", "name": "driver_name_7820"}) # - .merge(af(8754), how="left", left_on='rules', right_on='array_id', validate="1:m") - .drop(columns=['rules', 'array_id', 'type_at_index']) - .rename(columns={"value_index": "rule_value_index_8754"}) # rule index - # - .merge(sf(6818), how="left", left_on='id_or_value_at_index', right_on='struct_id', validate="1:m") - .drop(columns=['id_or_value_at_index', 'struct_id']) - .rename(columns={"id": "rule_id_6818", "name": "rule_name_6818"}) - # - .merge(sf(8581), how="left", left_on='defaultConfiguration', right_on='struct_id', validate="1:m") - .drop(columns=['defaultConfiguration', 'struct_id']) - # - .merge(sf(2774), how="left", left_on='fullDescription', right_on='struct_id', validate="1:m") - .drop(columns=['fullDescription', 'struct_id']) - .rename(columns={"text": "rule_fullDescription_6818"}) - # - .merge(sf(2774), how="left", left_on='shortDescription', right_on='struct_id', validate="1:m") - .drop(columns=['shortDescription', 'struct_id']) - .rename(columns={"text": "rule_shortDescription_6818"}) - # - .merge(sf(7849), how="left", left_on='properties', right_on='struct_id', validate="1:m") - .drop(columns=['properties', 'struct_id']) - # - .merge(af(7069), how="left", left_on='tags', right_on='array_id', validate="1:m") - .drop(columns=['tags', 'array_id', 'type_at_index']) - .rename(columns={"value_index": "tag_index_7069", "id_or_value_at_index": "tag_text_7069"}) # versionControlProvenance - repositoryUri # The merge with af(8754) replicates versionControlProvenance, no 1:m validation .merge(af(5511), how="left", left_on='versionControlProvenance', right_on='array_id') @@ -293,6 +269,50 @@ def joins_for_project(tgraph): ) return project_df +def joins_for_rules(tgraph): + """ + Return table providing the `rules` information. + """ + # Access convenience functions + sf = lambda num: tgraph.dataframes['Struct' + str(num)] + sft = lambda id: sf(id).rename(columns = tagged_struct_columns(tgraph, id)) + af = lambda num: tgraph.dataframes['Array' + str(num)] + aft = lambda id: af(id).rename(columns = tagged_array_columns(tgraph, id)) + # + rules_df = ( + aft(8754) + # + .drop(columns=['t8754_type_at_index']) + # + .merge(sft(6818), how="left", left_on='t8754_id_or_value_at_index', + right_on='t6818_struct_id', + validate="1:m") + .drop(columns=['t8754_id_or_value_at_index', 't6818_struct_id']) + # + .merge(sft(8581), how="left", left_on='t6818_defaultConfiguration', + right_on='t8581_struct_id', validate="1:m") + .drop(columns=['t6818_defaultConfiguration', 't8581_struct_id']) + # + .merge(sft(2774), how="left", left_on='t6818_fullDescription', + right_on='t2774_struct_id', validate="1:m") + .drop(columns=['t6818_fullDescription', 't2774_struct_id']) + .rename(columns={'t2774_text': "t6818_t2774_fullDescription"}) + # + .merge(sft(2774), how="left", left_on='t6818_shortDescription', + right_on='t2774_struct_id', validate="1:m") + .drop(columns=['t6818_shortDescription', 't2774_struct_id']) + .rename(columns={"t2774_text": 't6818_t2774_shortDescription'}) + # + .merge(sft(7849), how="left", left_on='t6818_properties', + right_on='t7849_struct_id', validate="1:m") + .drop(columns=['t6818_properties', 't7849_struct_id']) + # + .merge(aft(7069), how="left", left_on='t7849_tags', + right_on='t7069_array_id', validate="1:m") + .drop(columns=['t7849_tags', 't7069_array_id', 't7069_type_at_index']) + ) + return rules_df + def joins_for_artifacts(tgraph): """ Return table providing the `artifacts` information. diff --git a/sarif_cli/typegraph.py b/sarif_cli/typegraph.py index 72a4da5..afcde23 100644 --- a/sarif_cli/typegraph.py +++ b/sarif_cli/typegraph.py @@ -251,3 +251,30 @@ def attach_tables(typegraph): continue # skip String etc. typegraph.dataframes[typedef] = pd.DataFrame(valarray, columns = colheader) + +def tagged_array_columns(typegraph, array_id): + """ Return a dict mapping the array column names to versions tagged with the id. + + Example: + The original table headers are + + array_id value_index type_at_index id_or_value_at_index + + the tagged versions become + + t8754_array_id t8754_value_index t8754_type_at_index t8754_id_or_value_at_index + """ + array_id = str(array_id) + typedef = 'Array' + array_id + colheader = ('array_id', 'value_index', 'type_at_index', 'id_or_value_at_index') + return { header:"t{:s}_{:s}".format(array_id, header) for header in colheader} + + +def tagged_struct_columns(typegraph, struct_id): + """ Return a dict mapping the struct column names to versions tagged with the id. + XX: + """ + struct_id = str(struct_id) + typedef = 'Struct' + struct_id + colheader = ('struct_id', *typegraph.fields[typedef]) + return { header:"t{:s}_{:s}".format(struct_id, header) for header in colheader} diff --git a/scripts/multi-table-overview.ipynb b/scripts/multi-table-overview.ipynb new file mode 100644 index 0000000..7675b8f --- /dev/null +++ b/scripts/multi-table-overview.ipynb @@ -0,0 +1,4271 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "57b3a80f", + "metadata": {}, + "source": [ + "## Navigate and produce .csv tables" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "eab5a79a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/hohn/local/sarif-cli/data/treeio\n" + ] + } + ], + "source": [ + "cd ~/local/sarif-cli/data/treeio" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "410f8af6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[34m2021-12-09\u001b[m\u001b[m/ multi-sarif-01.json test_set_1.sarif\r\n", + "\u001b[34m2022-02-25\u001b[m\u001b[m/ multi-sarif-01.yaml test_set_1.yaml\r\n", + "\u001b[34mbase-tables\u001b[m\u001b[m/ \u001b[34mtest-01\u001b[m\u001b[m/ \u001b[34mtreeio\u001b[m\u001b[m/\r\n" + ] + } + ], + "source": [ + "%ls" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "bbf85a1b", + "metadata": {}, + "outputs": [], + "source": [ + "!sarif-extract-multi multi-sarif-01.json base-tables" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "c55e5253", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/hohn/local/sarif-cli/data/treeio/base-tables\n" + ] + } + ], + "source": [ + "cd base-tables" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "1e04313e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "artifacts.csv kind_problem.csv rules.csv\r\n", + "codeflows.csv project.csv\r\n", + "kind_pathproblem.csv relatedLocations.csv\r\n" + ] + } + ], + "source": [ + "%ls" + ] + }, + { + "cell_type": "markdown", + "id": "3b2c22db", + "metadata": {}, + "source": [ + "## Display adjustments" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "42ac6ab0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import display, HTML\n", + "\n", + "# use full display width\n", + "display(HTML(\"\"))\n", + "\n", + "# enlarge table font size\n", + "display(HTML(\"\"))\n", + "\n", + "display(HTML(\"\"))\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "7c2dc5bd", + "metadata": {}, + "source": [ + "## Load tables" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "b26e87f9", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from collections import UserDict\n", + "d1 = UserDict()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "d2f7b1db", + "metadata": {}, + "outputs": [], + "source": [ + "def windowed_view(df):\n", + " return df.style.set_sticky(axis=0).set_sticky(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "id": "2e086f42", + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "for p in Path(\".\").glob(\"*.csv\"):\n", + " d1[p.name] = pd.read_csv(p)" + ] + }, + { + "cell_type": "markdown", + "id": "82ede97f", + "metadata": {}, + "source": [ + "## ... and display all column names" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "0bf54f6a", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 codeflows.csvartifacts.csvproject.csvrelatedLocations.csvkind_pathproblem.csvrules.csvkind_problem.csv
0indexindexindexindexindexindexindex
1t9799_array_idarray_idvalue_index_7481struct_idt6343_result_idt8754_array_idresult_id_6343
2t9799_idxartifact_index_4640creation_dateurit6343_result_idxt8754_value_indexresults_idx_6343
3t1597_idxlocation_index_2685primary_languagestartLinet9699_codeFlowst6818_idrelatedLocations_id
4t1075_locations_idxlocation_uri_2685project_namestartColumnt9699_relatedLocationst6818_nameruleId
5id_2683location_uriBaseId_2685query_commit_idendLinet9699_ruleIdt8581_enabledruleIndex
6endColumnsarif_file_nameendColumnt9699_ruleIndext8581_levelvalue_index
7endLinescan_idmessaget0350_location_idxt6818_t2774_fullDescriptionid_2683
8startColumnscan_start_dateid_2683t6818_t2774_shortDescriptionendColumn
9startLinescan_stop_dateendColumnt7849_kindendLine
10location_index_2685tool_nameendLinet7849_precisionstartColumn
11uritool_versionstartColumnt7849_security-severitystartLine
12uriBaseId$schemastartLinet7849_severitylocation_index_2685
13message_text_2683version_6787location_index_2685t7849_sub-severityuri
14value_index_0177urit7069_value_indexuriBaseId
15artifactsuriBaseIdt7069_id_or_value_at_indexmessage_text_2683
16columnKindmessage_text_2683message_text_4055
17resultst9699_message_textprimaryLocationLineHash
18semmle.formatSpecifierprimaryLocationLineHashprimaryLocationStartColumnFingerprint
19semmle.sourceLanguageprimaryLocationStartColumnFingerprintrule_id
20driver_name_7820t3942_rule_idrule_index
21organizationt3942_rule_idx
22rules
23driver_version_7820
24versionControl_value_index_5511
25repositoryUri
26revisionId
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d1.colnames = pd.DataFrame([_df.columns for _df in d1.values()], index=d1.keys()).T\n", + "windowed_view(d1.colnames.fillna(\"\"))\n" + ] + }, + { + "cell_type": "markdown", + "id": "bad42b5b", + "metadata": {}, + "source": [ + "## ... and get details of some tables" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "4545958a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 indexarray_idartifact_index_4640location_index_2685location_uri_2685location_uriBaseId_2685
00488486585600static/js/fileuploader.js%SRCROOT%
11488486585611static/js/hardtree.js%SRCROOT%
22488486585622static/js/jquery-ui-1.10.3/demos/accordion/hoverintent.html%SRCROOT%
33488486585633static/js/jquery.ganttView.js%SRCROOT%
44488486585644static/js/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js%SRCROOT%
55488486585655static/js/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js%SRCROOT%
66488486585666static/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js%SRCROOT%
77488486585677static/js/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js%SRCROOT%
88488486585688static/js/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js%SRCROOT%
99488486585699static/js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js%SRCROOT%
101048848658561010static/js/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm%SRCROOT%
111148848658561111static/js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js%SRCROOT%
121248848658561212static/js/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js%SRCROOT%
131348848658561313static/js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js%SRCROOT%
141448848658561414static/js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js%SRCROOT%
151548848658561515static/js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js%SRCROOT%
161648848658561616static/js/tinymce/jscripts/tiny_mce/plugins/media/js/media.js%SRCROOT%
171748848658561717static/js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js%SRCROOT%
181848848658561818static/js/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js%SRCROOT%
191948848658561919static/js/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js%SRCROOT%
202048848658562020static/js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js%SRCROOT%
212148848658562121static/js/tinymce/jscripts/tiny_mce/plugins/style/js/props.js%SRCROOT%
222248848658562222static/js/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js%SRCROOT%
232348848658562323static/js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js%SRCROOT%
242448848658562424static/js/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js%SRCROOT%
252548848658562525static/js/tinymce/jscripts/tiny_mce/plugins/template/js/template.js%SRCROOT%
262648848658562626static/js/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js%SRCROOT%
272748848658562727static/js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js%SRCROOT%
282848848658562828static/js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js%SRCROOT%
292948848658562929static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js%SRCROOT%
303048848658563030static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js%SRCROOT%
313148848658563131static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js%SRCROOT%
323248848658563232static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js%SRCROOT%
333348848658563333static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js%SRCROOT%
343448848658563434static/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js%SRCROOT%
353548848658563535static/js/tinymce/jscripts/tiny_mce/utils/editable_selects.js%SRCROOT%
363648848658563636static/js/tinymce/jscripts/tiny_mce/utils/mctabs.js%SRCROOT%
373748848658563737static/js/tinymce/jscripts/tiny_mce/utils/validate.js%SRCROOT%
383848848658563838static/mobile/jquery.mobile.scrollview.js%SRCROOT%
393948848658563939templates/html/core/billing/upgrade.html%SRCROOT%
404048848658564040static/js/12o_super_mini.js%SRCROOT%
414148848658564141static/js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js%SRCROOT%
424248848658564242static/js/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js%SRCROOT%
434348848658564343static/js/chat.js%SRCROOT%
444448848658564444static/js/jquery-ui-1.10.3/demos/effect/easing.html%SRCROOT%
454548848658564545static/js/jquery.gritter.js%SRCROOT%
464648848658564646static/js/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js%SRCROOT%
474748848658564747static/js/tinymce/jscripts/tiny_mce/plugins/table/js/table.js%SRCROOT%
484848848658564848static/js/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js%SRCROOT%
494948848658564949static/js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js%SRCROOT%
505048848658565050static/js/tinymce/jscripts/tiny_mce/utils/form_utils.js%SRCROOT%
515148848658565151static/mobile/jquery.mobile.forms.ajaxform.js%SRCROOT%
525248848658565252static/js/colorbox/example1/index.html%SRCROOT%
535348848658565353static/js/colorbox/example2/index.html%SRCROOT%
545448848658565454static/js/colorbox/example3/index.html%SRCROOT%
555548848658565555static/js/colorbox/example4/index.html%SRCROOT%
565648848658565656static/js/colorbox/example5/index.html%SRCROOT%
575748848658565757static/js/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js%SRCROOT%
585848848658565858static/js/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js%SRCROOT%
595948848658565959static/js/tinymce/jscripts/tiny_mce/plugins/preview/preview.html%SRCROOT%
606048848658566060static/js/jquery-ui-1.10.3/demos/dialog/modal-form.html%SRCROOT%
616148848658566161static/js/jquery-ui-1.10.3/ui/jquery.ui.datepicker.js%SRCROOT%
626248848658566262static/js/jquery-ui-1.10.3/ui/jquery.ui.resizable.js%SRCROOT%
636348848658566363static/js/jquery-ui-1.10.3/ui/jquery.ui.slider.js%SRCROOT%
646448848658566464static/js/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js%SRCROOT%
656548848658566565templates/html/core/administration/settings_view.html%SRCROOT%
666648848658566666templates/html/core/database_setup.html%SRCROOT%
676748848658566767static/js/jquery.ba-serializeobject.js%SRCROOT%
686848848658566868static/js/jquery-ui-1.10.3/ui/jquery.ui.button.js%SRCROOT%
696948848658566969static/js/jquery-ui-1.10.3/ui/jquery.ui.tabs.js%SRCROOT%
707048848658567070static/js/jquery-ui-1.10.3/ui/jquery.ui.sortable.js%SRCROOT%
717148848658567171static/js/jquery-ui-1.10.3/ui/jquery.ui.droppable.js%SRCROOT%
727248848658567272static/js/jquery-ui-1.10.3/ui/jquery-ui.js%SRCROOT%
737348848658567373static/js/jquery-ui-custom.js%SRCROOT%
747448848658567474static/js/jquery-ui-1.10.3/ui/jquery.ui.position.js%SRCROOT%
757548848658567575static/js/jquery-ui-1.10.3/demos/droppable/photo-manager.html%SRCROOT%
767648848658567676static/js/jquery-ui-1.10.3/demos/tabs/manipulation.html%SRCROOT%
7777488730432000treeio/core/middleware/chat.py%SRCROOT%
7878488730432011treeio/core/search/views.py%SRCROOT%
7979488730432022treeio/sales/views.py%SRCROOT%
8080488730432033treeio_project/settings.py%SRCROOT%
8181488730432044treeio/core/administration/api/handlers.py%SRCROOT%
8282488730432055treeio/core/administration/forms.py%SRCROOT%
8383488730432066treeio/identities/api/handlers.py%SRCROOT%
8484488730432077treeio/infrastructure/api/handlers.py%SRCROOT%
8585488730432088treeio/core/db/__init__.py%SRCROOT%
8686488730432099treeio/core/db/db.py%SRCROOT%
878748873043201010treeio/core/south_migrations/0002_auto__del_notification__add_comment__add_tag__add_revisionfield__add_r.py%SRCROOT%
888848873043201111treeio/core/south_migrations/0005_auto__del_field_group_id__chg_field_group_accessentity_ptr__del_field_.py%SRCROOT%
898948873043201212treeio/messaging/south_migrations/0002_auto__add_mailinglist__add_template__add_field_message_mlist__chg_fiel.py%SRCROOT%
909048873043201313treeio/services/south_migrations/0004_auto__del_field_ticketrecord_record_type__del_field_ticketrecord_detai.py%SRCROOT%
919148873043201414treeio/account/south_migrations/0001_initial.py%SRCROOT%
929248873043201515treeio/changes/south_migrations/0001_initial.py%SRCROOT%
939348873043201616treeio/core/ajax/converter.py%SRCROOT%
949448873043201717treeio/core/api/south_migrations/0001_initial.py%SRCROOT%
959548873043201818treeio/core/api/south_migrations/0002_auto__add_field_consumer_owner.py%SRCROOT%
969648873043201919treeio/core/management/commands/installdb.py%SRCROOT%
979748873043202020treeio/core/middleware/user.py%SRCROOT%
989848873043202121treeio/core/south_migrations/0003_treeiocore.py%SRCROOT%
999948873043202222treeio/core/south_migrations/0004_auto__del_field_object_user.py%SRCROOT%
10010048873043202323treeio/core/south_migrations/0006_auto__add_configsetting.py%SRCROOT%
10110148873043202424treeio/core/south_migrations/0007_auto__add_attachment.py%SRCROOT%
10210248873043202525treeio/core/south_migrations/0008_auto__add_field_attachment_filename.py%SRCROOT%
10310348873043202626treeio/documents/south_migrations/0001_initial.py%SRCROOT%
10410448873043202727treeio/events/south_migrations/0001_initial.py%SRCROOT%
10510548873043202828treeio/finance/south_migrations/0001_initial.py%SRCROOT%
10610648873043202929treeio/finance/south_migrations/0002_auto__add_currency__add_tax__add_field_liability_value_currency__add_f.py%SRCROOT%
10710748873043203030treeio/finance/south_migrations/0003_treeiocurrency.py%SRCROOT%
10810848873043203131treeio/identities/south_migrations/0001_initial.py%SRCROOT%
10910948873043203232treeio/identities/south_migrations/0002_auto__chg_field_contact_related_user.py%SRCROOT%
11011048873043203333treeio/identities/south_migrations/0003_related_accessentity.py%SRCROOT%
11111148873043203434treeio/identities/south_migrations/0004_auto__del_field_contact_related_group.py%SRCROOT%
11211248873043203535treeio/infrastructure/south_migrations/0001_initial.py%SRCROOT%
11311348873043203636treeio/knowledge/south_migrations/0001_initial.py%SRCROOT%
11411448873043203737treeio/messaging/south_migrations/0001_initial.py%SRCROOT%
11511548873043203838treeio/messaging/south_migrations/0003_merge_emailbox_stream.py%SRCROOT%
11611648873043203939treeio/messaging/south_migrations/0004_auto__del_emailbox__del_field_messagestream_email_outgoing__del_field_.py%SRCROOT%
11711748873043204040treeio/news/south_migrations/0001_initial.py%SRCROOT%
11811848873043204141treeio/projects/south_migrations/0001_initial.py%SRCROOT%
11911948873043204242treeio/projects/south_migrations/0002_updaterecords.py%SRCROOT%
12012048873043204343treeio/projects/south_migrations/0003_auto__add_field_tasktimeslot_user.py%SRCROOT%
12112148873043204444treeio/projects/south_migrations/0004_timeslots.py%SRCROOT%
12212248873043204545treeio/projects/south_migrations/0005_auto__del_taskrecord.py%SRCROOT%
12312348873043204646treeio/projects/south_migrations/0006_auto__add_field_task_depends.py%SRCROOT%
12412448873043204747treeio/reports/south_migrations/0001_initial.py%SRCROOT%
12512548873043204848treeio/reports/south_migrations/0002_auto__del_template__add_chart__del_field_report_template__add_field_re.py%SRCROOT%
12612648873043204949treeio/reports/south_migrations/0003_delete_old.py%SRCROOT%
12712748873043205050treeio/sales/south_migrations/0002_auto__del_updaterecord__add_field_orderedproduct_tax__add_field_ordere.py%SRCROOT%
12812848873043205151treeio/sales/south_migrations/0003_treeiocurrency.py%SRCROOT%
12912948873043205252treeio/sales/south_migrations/0004_auto__chg_field_orderedproduct_quantity.py%SRCROOT%
13013048873043205353treeio/services/south_migrations/0001_initial.py%SRCROOT%
13113148873043205454treeio/services/south_migrations/0002_auto__add_field_ticketrecord_updaterecord_ptr.py%SRCROOT%
13213248873043205555treeio/services/south_migrations/0003_updaterecords.py%SRCROOT%
13313348873043205656treeio/account/ajax.py%SRCROOT%
13413448873043205757treeio/account/cron.py%SRCROOT%
13513548873043205858treeio/account/forms.py%SRCROOT%
13613648873043205959treeio/account/views.py%SRCROOT%
13713748873043206060treeio/core/administration/views.py%SRCROOT%
13813848873043206161treeio/core/api/doc.py%SRCROOT%
13913948873043206262treeio/core/auth.py%SRCROOT%
14014048873043206363treeio/core/contrib/messages/storage/cache.py%SRCROOT%
14114148873043206464treeio/core/dashboard/views.py%SRCROOT%
14214248873043206565treeio/core/db/creation.py%SRCROOT%
14314348873043206666treeio/core/forms.py%SRCROOT%
14414448873043206767treeio/core/mail.py%SRCROOT%
14514548873043206868treeio/core/management/commands/runcron.py%SRCROOT%
14614648873043206969treeio/core/models.py%SRCROOT%
14714748873043207070treeio/core/rendering.py%SRCROOT%
14814848873043207171treeio/core/rss.py%SRCROOT%
14914948873043207272treeio/core/search/models.py%SRCROOT%
15015048873043207373treeio/core/templatetags/modules.py%SRCROOT%
15115148873043207474treeio/core/templatetags/user.py%SRCROOT%
15215248873043207575treeio/core/trash/views.py%SRCROOT%
15315348873043207676treeio/core/views.py%SRCROOT%
15415448873043207777treeio/documents/forms.py%SRCROOT%
15515548873043207878treeio/events/forms.py%SRCROOT%
15615648873043207979treeio/events/rendering.py%SRCROOT%
15715748873043208080treeio/finance/api/handlers.py%SRCROOT%
15815848873043208181treeio/finance/forms.py%SRCROOT%
15915948873043208282treeio/finance/models.py%SRCROOT%
16016048873043208383treeio/finance/views.py%SRCROOT%
16116148873043208484treeio/identities/integration.py%SRCROOT%
16216248873043208585treeio/identities/models.py%SRCROOT%
16316348873043208686treeio/identities/objects.py%SRCROOT%
16416448873043208787treeio/messaging/api/handlers.py%SRCROOT%
16516548873043208888treeio/messaging/emails.py%SRCROOT%
16616648873043208989treeio/messaging/forms.py%SRCROOT%
16716748873043209090treeio/messaging/views.py%SRCROOT%
16816848873043209191treeio/news/forms.py%SRCROOT%
16916948873043209292treeio/projects/ajax.py%SRCROOT%
17017048873043209393treeio/projects/identities.py%SRCROOT%
17117148873043209494treeio/reports/templatetags/reports.py%SRCROOT%
17217248873043209595treeio/sales/forms.py%SRCROOT%
17317348873043209696treeio/sales/models.py%SRCROOT%
17417448873043209797treeio/services/api/handlers.py%SRCROOT%
17517548873043209898treeio/services/forms.py%SRCROOT%
17617648873043209999treeio/services/identities.py%SRCROOT%
1771774887304320100100treeio/services/models.py%SRCROOT%
1781784887304320101101treeio/services/views.py%SRCROOT%
1791794887304320102102treeio/core/api/utils.py%SRCROOT%
1801804887304320103103treeio/projects/views.py%SRCROOT%
1811814887304320104104treeio/core/sanitizer.py%SRCROOT%
182182488879584000treeio/core/middleware/chat.py%SRCROOT%
183183488879584011treeio/core/search/views.py%SRCROOT%
184184488879584022treeio/sales/views.py%SRCROOT%
185185488879584033treeio_project/settings.py%SRCROOT%
186186488879584044treeio/core/administration/api/handlers.py%SRCROOT%
187187488879584055treeio/core/administration/forms.py%SRCROOT%
188188488879584066treeio/identities/api/handlers.py%SRCROOT%
189189488879584077treeio/infrastructure/api/handlers.py%SRCROOT%
190190488879584088treeio/core/db/__init__.py%SRCROOT%
191191488879584099treeio/core/db/db.py%SRCROOT%
19219248887958401010treeio/core/south_migrations/0002_auto__del_notification__add_comment__add_tag__add_revisionfield__add_r.py%SRCROOT%
19319348887958401111treeio/core/south_migrations/0005_auto__del_field_group_id__chg_field_group_accessentity_ptr__del_field_.py%SRCROOT%
19419448887958401212treeio/messaging/south_migrations/0002_auto__add_mailinglist__add_template__add_field_message_mlist__chg_fiel.py%SRCROOT%
19519548887958401313treeio/services/south_migrations/0004_auto__del_field_ticketrecord_record_type__del_field_ticketrecord_detai.py%SRCROOT%
19619648887958401414treeio/account/south_migrations/0001_initial.py%SRCROOT%
19719748887958401515treeio/changes/south_migrations/0001_initial.py%SRCROOT%
19819848887958401616treeio/core/ajax/converter.py%SRCROOT%
19919948887958401717treeio/core/api/south_migrations/0001_initial.py%SRCROOT%
20020048887958401818treeio/core/api/south_migrations/0002_auto__add_field_consumer_owner.py%SRCROOT%
20120148887958401919treeio/core/management/commands/installdb.py%SRCROOT%
20220248887958402020treeio/core/middleware/user.py%SRCROOT%
20320348887958402121treeio/core/south_migrations/0003_treeiocore.py%SRCROOT%
20420448887958402222treeio/core/south_migrations/0004_auto__del_field_object_user.py%SRCROOT%
20520548887958402323treeio/core/south_migrations/0006_auto__add_configsetting.py%SRCROOT%
20620648887958402424treeio/core/south_migrations/0007_auto__add_attachment.py%SRCROOT%
20720748887958402525treeio/core/south_migrations/0008_auto__add_field_attachment_filename.py%SRCROOT%
20820848887958402626treeio/documents/south_migrations/0001_initial.py%SRCROOT%
20920948887958402727treeio/events/south_migrations/0001_initial.py%SRCROOT%
21021048887958402828treeio/finance/south_migrations/0001_initial.py%SRCROOT%
21121148887958402929treeio/finance/south_migrations/0002_auto__add_currency__add_tax__add_field_liability_value_currency__add_f.py%SRCROOT%
21221248887958403030treeio/finance/south_migrations/0003_treeiocurrency.py%SRCROOT%
21321348887958403131treeio/identities/south_migrations/0001_initial.py%SRCROOT%
21421448887958403232treeio/identities/south_migrations/0002_auto__chg_field_contact_related_user.py%SRCROOT%
21521548887958403333treeio/identities/south_migrations/0003_related_accessentity.py%SRCROOT%
21621648887958403434treeio/identities/south_migrations/0004_auto__del_field_contact_related_group.py%SRCROOT%
21721748887958403535treeio/infrastructure/south_migrations/0001_initial.py%SRCROOT%
21821848887958403636treeio/knowledge/south_migrations/0001_initial.py%SRCROOT%
21921948887958403737treeio/messaging/south_migrations/0001_initial.py%SRCROOT%
22022048887958403838treeio/messaging/south_migrations/0003_merge_emailbox_stream.py%SRCROOT%
22122148887958403939treeio/messaging/south_migrations/0004_auto__del_emailbox__del_field_messagestream_email_outgoing__del_field_.py%SRCROOT%
22222248887958404040treeio/news/south_migrations/0001_initial.py%SRCROOT%
22322348887958404141treeio/projects/south_migrations/0001_initial.py%SRCROOT%
22422448887958404242treeio/projects/south_migrations/0002_updaterecords.py%SRCROOT%
22522548887958404343treeio/projects/south_migrations/0003_auto__add_field_tasktimeslot_user.py%SRCROOT%
22622648887958404444treeio/projects/south_migrations/0004_timeslots.py%SRCROOT%
22722748887958404545treeio/projects/south_migrations/0005_auto__del_taskrecord.py%SRCROOT%
22822848887958404646treeio/projects/south_migrations/0006_auto__add_field_task_depends.py%SRCROOT%
22922948887958404747treeio/reports/south_migrations/0001_initial.py%SRCROOT%
23023048887958404848treeio/reports/south_migrations/0002_auto__del_template__add_chart__del_field_report_template__add_field_re.py%SRCROOT%
23123148887958404949treeio/reports/south_migrations/0003_delete_old.py%SRCROOT%
23223248887958405050treeio/sales/south_migrations/0002_auto__del_updaterecord__add_field_orderedproduct_tax__add_field_ordere.py%SRCROOT%
23323348887958405151treeio/sales/south_migrations/0003_treeiocurrency.py%SRCROOT%
23423448887958405252treeio/sales/south_migrations/0004_auto__chg_field_orderedproduct_quantity.py%SRCROOT%
23523548887958405353treeio/services/south_migrations/0001_initial.py%SRCROOT%
23623648887958405454treeio/services/south_migrations/0002_auto__add_field_ticketrecord_updaterecord_ptr.py%SRCROOT%
23723748887958405555treeio/services/south_migrations/0003_updaterecords.py%SRCROOT%
23823848887958405656treeio/account/ajax.py%SRCROOT%
23923948887958405757treeio/account/cron.py%SRCROOT%
24024048887958405858treeio/account/forms.py%SRCROOT%
24124148887958405959treeio/account/views.py%SRCROOT%
24224248887958406060treeio/core/administration/views.py%SRCROOT%
24324348887958406161treeio/core/api/doc.py%SRCROOT%
24424448887958406262treeio/core/auth.py%SRCROOT%
24524548887958406363treeio/core/contrib/messages/storage/cache.py%SRCROOT%
24624648887958406464treeio/core/dashboard/views.py%SRCROOT%
24724748887958406565treeio/core/db/creation.py%SRCROOT%
24824848887958406666treeio/core/forms.py%SRCROOT%
24924948887958406767treeio/core/mail.py%SRCROOT%
25025048887958406868treeio/core/management/commands/runcron.py%SRCROOT%
25125148887958406969treeio/core/models.py%SRCROOT%
25225248887958407070treeio/core/rendering.py%SRCROOT%
25325348887958407171treeio/core/rss.py%SRCROOT%
25425448887958407272treeio/core/search/models.py%SRCROOT%
25525548887958407373treeio/core/templatetags/modules.py%SRCROOT%
25625648887958407474treeio/core/templatetags/user.py%SRCROOT%
25725748887958407575treeio/core/trash/views.py%SRCROOT%
25825848887958407676treeio/core/views.py%SRCROOT%
25925948887958407777treeio/documents/forms.py%SRCROOT%
26026048887958407878treeio/events/forms.py%SRCROOT%
26126148887958407979treeio/events/rendering.py%SRCROOT%
26226248887958408080treeio/finance/api/handlers.py%SRCROOT%
26326348887958408181treeio/finance/forms.py%SRCROOT%
26426448887958408282treeio/finance/models.py%SRCROOT%
26526548887958408383treeio/finance/views.py%SRCROOT%
26626648887958408484treeio/identities/integration.py%SRCROOT%
26726748887958408585treeio/identities/models.py%SRCROOT%
26826848887958408686treeio/identities/objects.py%SRCROOT%
26926948887958408787treeio/messaging/api/handlers.py%SRCROOT%
27027048887958408888treeio/messaging/emails.py%SRCROOT%
27127148887958408989treeio/messaging/forms.py%SRCROOT%
27227248887958409090treeio/messaging/views.py%SRCROOT%
27327348887958409191treeio/news/forms.py%SRCROOT%
27427448887958409292treeio/projects/ajax.py%SRCROOT%
27527548887958409393treeio/projects/identities.py%SRCROOT%
27627648887958409494treeio/reports/templatetags/reports.py%SRCROOT%
27727748887958409595treeio/sales/forms.py%SRCROOT%
27827848887958409696treeio/sales/models.py%SRCROOT%
27927948887958409797treeio/services/api/handlers.py%SRCROOT%
28028048887958409898treeio/services/forms.py%SRCROOT%
28128148887958409999treeio/services/identities.py%SRCROOT%
2822824888795840100100treeio/services/models.py%SRCROOT%
2832834888795840101101treeio/services/views.py%SRCROOT%
2842844888795840102102treeio/core/api/utils.py%SRCROOT%
2852854888795840103103treeio/projects/views.py%SRCROOT%
2862864888795840104104treeio/core/sanitizer.py%SRCROOT%
287287489022553600static/js/fileuploader.js%SRCROOT%
288288489022553611static/js/hardtree.js%SRCROOT%
289289489022553622static/js/jquery-ui-1.10.3/demos/accordion/hoverintent.html%SRCROOT%
290290489022553633static/js/jquery.ganttView.js%SRCROOT%
291291489022553644static/js/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js%SRCROOT%
292292489022553655static/js/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js%SRCROOT%
293293489022553666static/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js%SRCROOT%
294294489022553677static/js/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js%SRCROOT%
295295489022553688static/js/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js%SRCROOT%
296296489022553699static/js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js%SRCROOT%
29729748902255361010static/js/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm%SRCROOT%
29829848902255361111static/js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js%SRCROOT%
29929948902255361212static/js/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js%SRCROOT%
30030048902255361313static/js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js%SRCROOT%
30130148902255361414static/js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js%SRCROOT%
30230248902255361515static/js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js%SRCROOT%
30330348902255361616static/js/tinymce/jscripts/tiny_mce/plugins/media/js/media.js%SRCROOT%
30430448902255361717static/js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js%SRCROOT%
30530548902255361818static/js/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js%SRCROOT%
30630648902255361919static/js/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js%SRCROOT%
30730748902255362020static/js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js%SRCROOT%
30830848902255362121static/js/tinymce/jscripts/tiny_mce/plugins/style/js/props.js%SRCROOT%
30930948902255362222static/js/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js%SRCROOT%
31031048902255362323static/js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js%SRCROOT%
31131148902255362424static/js/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js%SRCROOT%
31231248902255362525static/js/tinymce/jscripts/tiny_mce/plugins/template/js/template.js%SRCROOT%
31331348902255362626static/js/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js%SRCROOT%
31431448902255362727static/js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js%SRCROOT%
31531548902255362828static/js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js%SRCROOT%
31631648902255362929static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js%SRCROOT%
31731748902255363030static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js%SRCROOT%
31831848902255363131static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js%SRCROOT%
31931948902255363232static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js%SRCROOT%
32032048902255363333static/js/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js%SRCROOT%
32132148902255363434static/js/tinymce/jscripts/tiny_mce/utils/editable_selects.js%SRCROOT%
32232248902255363535static/js/tinymce/jscripts/tiny_mce/utils/mctabs.js%SRCROOT%
32332348902255363636static/js/tinymce/jscripts/tiny_mce/utils/validate.js%SRCROOT%
32432448902255363737static/mobile/jquery.mobile.scrollview.js%SRCROOT%
32532548902255363838templates/html/core/billing/upgrade.html%SRCROOT%
32632648902255363939static/js/12o_super_mini.js%SRCROOT%
32732748902255364040static/js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js%SRCROOT%
32832848902255364141static/js/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js%SRCROOT%
32932948902255364242static/js/chat.js%SRCROOT%
33033048902255364343static/js/jquery-ui-1.10.3/demos/effect/easing.html%SRCROOT%
33133148902255364444static/js/jquery.gritter.js%SRCROOT%
33233248902255364545static/js/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js%SRCROOT%
33333348902255364646static/js/tinymce/jscripts/tiny_mce/plugins/table/js/table.js%SRCROOT%
33433448902255364747static/js/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js%SRCROOT%
33533548902255364848static/js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js%SRCROOT%
33633648902255364949static/js/tinymce/jscripts/tiny_mce/utils/form_utils.js%SRCROOT%
33733748902255365050static/mobile/jquery.mobile.forms.ajaxform.js%SRCROOT%
33833848902255365151static/js/colorbox/example1/index.html%SRCROOT%
33933948902255365252static/js/colorbox/example2/index.html%SRCROOT%
34034048902255365353static/js/colorbox/example3/index.html%SRCROOT%
34134148902255365454static/js/colorbox/example4/index.html%SRCROOT%
34234248902255365555static/js/colorbox/example5/index.html%SRCROOT%
34334348902255365656static/js/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js%SRCROOT%
34434448902255365757static/js/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js%SRCROOT%
34534548902255365858static/js/tinymce/jscripts/tiny_mce/plugins/preview/preview.html%SRCROOT%
34634648902255365959static/js/jquery-ui-1.10.3/demos/dialog/modal-form.html%SRCROOT%
34734748902255366060static/js/jquery-ui-1.10.3/ui/jquery.ui.datepicker.js%SRCROOT%
34834848902255366161static/js/jquery-ui-1.10.3/ui/jquery.ui.resizable.js%SRCROOT%
34934948902255366262static/js/jquery-ui-1.10.3/ui/jquery.ui.slider.js%SRCROOT%
35035048902255366363static/js/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js%SRCROOT%
35135148902255366464templates/html/core/administration/settings_view.html%SRCROOT%
35235248902255366565templates/html/core/database_setup.html%SRCROOT%
35335348902255366666static/js/jquery.ba-serializeobject.js%SRCROOT%
35435448902255366767static/js/jquery-ui-1.10.3/ui/jquery.ui.button.js%SRCROOT%
35535548902255366868static/js/jquery-ui-1.10.3/ui/jquery.ui.tabs.js%SRCROOT%
35635648902255366969static/js/jquery-ui-1.10.3/ui/jquery.ui.sortable.js%SRCROOT%
35735748902255367070static/js/jquery-ui-1.10.3/ui/jquery.ui.droppable.js%SRCROOT%
35835848902255367171static/js/jquery-ui-1.10.3/ui/jquery-ui.js%SRCROOT%
35935948902255367272static/js/jquery-ui-custom.js%SRCROOT%
36036048902255367373static/js/jquery-ui-1.10.3/ui/jquery.ui.position.js%SRCROOT%
36136148902255367474static/js/jquery-ui-1.10.3/demos/droppable/photo-manager.html%SRCROOT%
36236248902255367575static/js/jquery-ui-1.10.3/demos/tabs/manipulation.html%SRCROOT%
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "windowed_view(d1[\"artifacts.csv\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "7eca6850", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123
index0123
value_index_74810011
creation_date2021-12-092021-12-092022-02-252022-02-25
primary_languagejavascriptjavascriptjavascriptjavascript
project_nametreeio/treeiotreeio/treeiotreeio/treeiotreeio/treeio
query_commit_idfa9571646cfa9571646cfa9571646cfa9571646c
sarif_file_name2021-12-09/results.sarif2021-12-09/results.sarif2022-02-25/results.sarif2022-02-25/results.sarif
scan_id123456123456123457123457
scan_start_date2021-12-092021-12-092022-02-252022-02-25
scan_stop_date2021-12-102021-12-102022-02-262022-02-26
tool_namecodeqlcodeqlcodeqlcodeql
tool_versionv1.27v1.27v1.29v1.29
$schemahttps://raw.githubusercontent.com/oasis-tcs/sa...https://raw.githubusercontent.com/oasis-tcs/sa...https://json.schemastore.org/sarif-2.1.0.jsonhttps://json.schemastore.org/sarif-2.1.0.json
version_67872.1.02.1.02.1.02.1.0
value_index_01770101
artifacts4884865856488730432048887958404890225536
columnKindutf16CodeUnitsunicodeCodePointsunicodeCodePointsutf16CodeUnits
results4884866112488733574448888300164890226432
semmle.formatSpecifier2.1.02.1.02.1.02.1.0
semmle.sourceLanguagejavascriptpythonpythonjavascript
driver_name_7820LGTM.comLGTM.comLGTM.comLGTM.com
organizationSemmleSemmleSemmleSemmle
rules4887304640488879532848902260484892162432
driver_version_78201.29.0-SNAPSHOT1.29.0-SNAPSHOT1.31.0-SNAPSHOT1.31.0-SNAPSHOT
versionControl_value_index_55110000
repositoryUrihttps://github.com/treeio/treeio.githttps://github.com/treeio/treeio.githttps://github.com/treeio/treeio.githttps://github.com/treeio/treeio.git
revisionIdbae3115f4015aad2cbc5ab45572232ceec990495bae3115f4015aad2cbc5ab45572232ceec990495bae3115f4015aad2cbc5ab45572232ceec990495bae3115f4015aad2cbc5ab45572232ceec990495
\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "index 0 \n", + "value_index_7481 0 \n", + "creation_date 2021-12-09 \n", + "primary_language javascript \n", + "project_name treeio/treeio \n", + "query_commit_id fa9571646c \n", + "sarif_file_name 2021-12-09/results.sarif \n", + "scan_id 123456 \n", + "scan_start_date 2021-12-09 \n", + "scan_stop_date 2021-12-10 \n", + "tool_name codeql \n", + "tool_version v1.27 \n", + "$schema https://raw.githubusercontent.com/oasis-tcs/sa... \n", + "version_6787 2.1.0 \n", + "value_index_0177 0 \n", + "artifacts 4884865856 \n", + "columnKind utf16CodeUnits \n", + "results 4884866112 \n", + "semmle.formatSpecifier 2.1.0 \n", + "semmle.sourceLanguage javascript \n", + "driver_name_7820 LGTM.com \n", + "organization Semmle \n", + "rules 4887304640 \n", + "driver_version_7820 1.29.0-SNAPSHOT \n", + "versionControl_value_index_5511 0 \n", + "repositoryUri https://github.com/treeio/treeio.git \n", + "revisionId bae3115f4015aad2cbc5ab45572232ceec990495 \n", + "\n", + " 1 \\\n", + "index 1 \n", + "value_index_7481 0 \n", + "creation_date 2021-12-09 \n", + "primary_language javascript \n", + "project_name treeio/treeio \n", + "query_commit_id fa9571646c \n", + "sarif_file_name 2021-12-09/results.sarif \n", + "scan_id 123456 \n", + "scan_start_date 2021-12-09 \n", + "scan_stop_date 2021-12-10 \n", + "tool_name codeql \n", + "tool_version v1.27 \n", + "$schema https://raw.githubusercontent.com/oasis-tcs/sa... \n", + "version_6787 2.1.0 \n", + "value_index_0177 1 \n", + "artifacts 4887304320 \n", + "columnKind unicodeCodePoints \n", + "results 4887335744 \n", + "semmle.formatSpecifier 2.1.0 \n", + "semmle.sourceLanguage python \n", + "driver_name_7820 LGTM.com \n", + "organization Semmle \n", + "rules 4888795328 \n", + "driver_version_7820 1.29.0-SNAPSHOT \n", + "versionControl_value_index_5511 0 \n", + "repositoryUri https://github.com/treeio/treeio.git \n", + "revisionId bae3115f4015aad2cbc5ab45572232ceec990495 \n", + "\n", + " 2 \\\n", + "index 2 \n", + "value_index_7481 1 \n", + "creation_date 2022-02-25 \n", + "primary_language javascript \n", + "project_name treeio/treeio \n", + "query_commit_id fa9571646c \n", + "sarif_file_name 2022-02-25/results.sarif \n", + "scan_id 123457 \n", + "scan_start_date 2022-02-25 \n", + "scan_stop_date 2022-02-26 \n", + "tool_name codeql \n", + "tool_version v1.29 \n", + "$schema https://json.schemastore.org/sarif-2.1.0.json \n", + "version_6787 2.1.0 \n", + "value_index_0177 0 \n", + "artifacts 4888795840 \n", + "columnKind unicodeCodePoints \n", + "results 4888830016 \n", + "semmle.formatSpecifier 2.1.0 \n", + "semmle.sourceLanguage python \n", + "driver_name_7820 LGTM.com \n", + "organization Semmle \n", + "rules 4890226048 \n", + "driver_version_7820 1.31.0-SNAPSHOT \n", + "versionControl_value_index_5511 0 \n", + "repositoryUri https://github.com/treeio/treeio.git \n", + "revisionId bae3115f4015aad2cbc5ab45572232ceec990495 \n", + "\n", + " 3 \n", + "index 3 \n", + "value_index_7481 1 \n", + "creation_date 2022-02-25 \n", + "primary_language javascript \n", + "project_name treeio/treeio \n", + "query_commit_id fa9571646c \n", + "sarif_file_name 2022-02-25/results.sarif \n", + "scan_id 123457 \n", + "scan_start_date 2022-02-25 \n", + "scan_stop_date 2022-02-26 \n", + "tool_name codeql \n", + "tool_version v1.29 \n", + "$schema https://json.schemastore.org/sarif-2.1.0.json \n", + "version_6787 2.1.0 \n", + "value_index_0177 1 \n", + "artifacts 4890225536 \n", + "columnKind utf16CodeUnits \n", + "results 4890226432 \n", + "semmle.formatSpecifier 2.1.0 \n", + "semmle.sourceLanguage javascript \n", + "driver_name_7820 LGTM.com \n", + "organization Semmle \n", + "rules 4892162432 \n", + "driver_version_7820 1.31.0-SNAPSHOT \n", + "versionControl_value_index_5511 0 \n", + "repositoryUri https://github.com/treeio/treeio.git \n", + "revisionId bae3115f4015aad2cbc5ab45572232ceec990495 " + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d1[\"project.csv\"].T" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a3b1cee", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b71ee59", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}