From 91e77b87f15b36816124f7053cdb1c9404374079 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 1 Feb 2023 15:05:20 +0000 Subject: [PATCH 01/97] [UPD] README.rst --- base_geoengine/README.rst | 140 + base_geoengine/__init__.py | 8 + base_geoengine/__manifest__.py | 26 + base_geoengine/doc/Makefile | 130 + base_geoengine/doc/build/.buildinfo | 4 + .../.doctrees/_templates/prerequisite.doctree | Bin 0 -> 2456 bytes .../doc/build/.doctrees/api_doc.doctree | Bin 0 -> 68857 bytes .../doc/build/.doctrees/environment.pickle | Bin 0 -> 16820 bytes .../doc/build/.doctrees/index.doctree | Bin 0 -> 7135 bytes .../doc/build/.doctrees/installation.doctree | Bin 0 -> 6749 bytes .../doc/build/.doctrees/postgisify.doctree | Bin 0 -> 4161 bytes .../doc/build/.doctrees/prerequisite.doctree | Bin 0 -> 5141 bytes .../build/.doctrees/what_is_geoengine.doctree | Bin 0 -> 6588 bytes .../doc/build/_images/core_architecture.jpg | Bin 0 -> 114343 bytes .../_sources/_templates/prerequisite.txt | 3 + base_geoengine/doc/build/_sources/api_doc.txt | 63 + base_geoengine/doc/build/_sources/index.txt | 31 + .../doc/build/_sources/installation.txt | 39 + .../doc/build/_sources/postgisify.txt | 13 + .../doc/build/_sources/prerequisite.txt | 30 + .../doc/build/_sources/what_is_geoengine.txt | 16 + .../_static/_images/core_architecture.jpg | Bin 0 -> 114343 bytes .../doc/build/_static/ajax-loader.gif | Bin 0 -> 673 bytes base_geoengine/doc/build/_static/basic.css | 560 + .../doc/build/_static/comment-bright.png | Bin 0 -> 3500 bytes .../doc/build/_static/comment-close.png | Bin 0 -> 3578 bytes base_geoengine/doc/build/_static/comment.png | Bin 0 -> 3445 bytes base_geoengine/doc/build/_static/default.css | 268 + base_geoengine/doc/build/_static/doctools.js | 248 + .../doc/build/_static/down-pressed.png | Bin 0 -> 368 bytes base_geoengine/doc/build/_static/down.png | Bin 0 -> 363 bytes base_geoengine/doc/build/_static/file.png | Bin 0 -> 392 bytes base_geoengine/doc/build/_static/jquery.js | 4007 + base_geoengine/doc/build/_static/minus.png | Bin 0 -> 199 bytes base_geoengine/doc/build/_static/plus.png | Bin 0 -> 199 bytes base_geoengine/doc/build/_static/pygments.css | 208 + .../doc/build/_static/searchtools.js | 618 + base_geoengine/doc/build/_static/sidebar.js | 143 + .../doc/build/_static/underscore.js | 455 + .../doc/build/_static/up-pressed.png | Bin 0 -> 372 bytes base_geoengine/doc/build/_static/up.png | Bin 0 -> 363 bytes .../doc/build/_static/websupport.js | 851 + .../doc/build/_templates/prerequisite.html | 99 + base_geoengine/doc/build/api_doc.html | 775 + base_geoengine/doc/build/genindex.html | 464 + base_geoengine/doc/build/index.html | 249 + base_geoengine/doc/build/installation.html | 205 + base_geoengine/doc/build/objects.inv | Bin 0 -> 638 bytes base_geoengine/doc/build/postgisify.html | 140 + base_geoengine/doc/build/prerequisite.html | 181 + base_geoengine/doc/build/py-modindex.html | 265 + base_geoengine/doc/build/search.html | 95 + base_geoengine/doc/build/searchindex.js | 357 + .../doc/build/what_is_geoengine.html | 169 + base_geoengine/doc/make.bat | 170 + .../_static/_images/core_architecture.jpg | Bin 0 -> 114343 bytes base_geoengine/doc/source/api_doc.rst | 63 + base_geoengine/doc/source/conf.py | 245 + base_geoengine/doc/source/index.rst | 31 + base_geoengine/doc/source/installation.rst | 12 + base_geoengine/doc/source/postgisify.rst | 16 + base_geoengine/doc/source/prerequisite.rst | 30 + .../doc/source/what_is_geoengine.rst | 16 + base_geoengine/fields.py | 278 + base_geoengine/geo_db.py | 92 + base_geoengine/geo_helper/__init__.py | 1 + .../geo_helper/geo_convertion_helper.py | 38 + base_geoengine/geo_ir/__init__.py | 1 + base_geoengine/geo_ir/ir_model.py | 51 + base_geoengine/geo_ir/ir_model_view.xml | 34 + base_geoengine/geo_model.py | 175 + base_geoengine/geo_operators.py | 240 + base_geoengine/geo_view/__init__.py | 24 + base_geoengine/geo_view/geo_raster_layer.py | 77 + .../geo_view/geo_raster_layer_view.xml | 93 + base_geoengine/geo_view/geo_vector_layer.py | 72 + .../geo_view/geo_vector_layer_view.xml | 97 + base_geoengine/geo_view/geo_vector_symbol.py | 19 + base_geoengine/geo_view/ir_view.py | 30 + base_geoengine/geo_view/ir_view_view.xml | 53 + base_geoengine/i18n/base_geoengine.pot | 753 + base_geoengine/images/map-hover.png | Bin 0 -> 113834 bytes base_geoengine/images/map.png | Bin 0 -> 71907 bytes base_geoengine/readme/CONTRIBUTORS.rst | 19 + base_geoengine/readme/DESCRIPTION.rst | 2 + base_geoengine/readme/INSTALL.rst | 14 + base_geoengine/readme/ROADMAP.rst | 5 + base_geoengine/readme/USAGE.rst | 16 + base_geoengine/security/data.xml | 14 + base_geoengine/security/ir.model.access.csv | 9 + base_geoengine/static/description/icon.png | Bin 0 -> 130328 bytes base_geoengine/static/description/index.html | 487 + base_geoengine/static/img/map-marker.png | Bin 0 -> 356 bytes .../static/lib/chromajs-0.8.0/LICENSE | 28 + .../static/lib/chromajs-0.8.0/chroma.js | 2226 + .../static/lib/geostats-1.4.0/geostats.css | 23 + .../static/lib/geostats-1.4.0/geostats.js | 1190 + .../static/lib/ol-4.6.5/ol-debug.js | 96044 ++++++++++++++++ base_geoengine/static/lib/ol-4.6.5/ol.css | 1 + .../static/lib/ol3-layerswitcher.css | 50 + .../static/lib/ol3-layerswitcher.js | 232 + base_geoengine/static/src/css/style.css | 180 + .../static/src/images/editing_tool_bar.png | Bin 0 -> 2222 bytes base_geoengine/static/src/js/.eslintrc | 9 + .../static/src/js/geoengine_common.js | 152 + .../static/src/js/views/form_renderer.js | 20 + .../views/geoengine/geoengine_controller.js | 323 + .../js/views/geoengine/geoengine_renderer.js | 854 + .../src/js/views/geoengine/geoengine_view.js | 56 + .../static/src/js/views/view_registry.js | 14 + .../static/src/js/widgets/geoengine_record.js | 74 + .../js/widgets/geoengine_template_widgets.js | 101 + .../src/js/widgets/geoengine_widgets.js | 607 + base_geoengine/static/src/xml/geoengine.xml | 122 + base_geoengine/views/assets.xml | 45 + base_geoengine/views/base_geoengine_view.xml | 9 + 116 files changed, 116497 insertions(+) create mode 100644 base_geoengine/README.rst create mode 100644 base_geoengine/__init__.py create mode 100644 base_geoengine/__manifest__.py create mode 100644 base_geoengine/doc/Makefile create mode 100644 base_geoengine/doc/build/.buildinfo create mode 100644 base_geoengine/doc/build/.doctrees/_templates/prerequisite.doctree create mode 100644 base_geoengine/doc/build/.doctrees/api_doc.doctree create mode 100644 base_geoengine/doc/build/.doctrees/environment.pickle create mode 100644 base_geoengine/doc/build/.doctrees/index.doctree create mode 100644 base_geoengine/doc/build/.doctrees/installation.doctree create mode 100644 base_geoengine/doc/build/.doctrees/postgisify.doctree create mode 100644 base_geoengine/doc/build/.doctrees/prerequisite.doctree create mode 100644 base_geoengine/doc/build/.doctrees/what_is_geoengine.doctree create mode 100644 base_geoengine/doc/build/_images/core_architecture.jpg create mode 100644 base_geoengine/doc/build/_sources/_templates/prerequisite.txt create mode 100644 base_geoengine/doc/build/_sources/api_doc.txt create mode 100644 base_geoengine/doc/build/_sources/index.txt create mode 100644 base_geoengine/doc/build/_sources/installation.txt create mode 100644 base_geoengine/doc/build/_sources/postgisify.txt create mode 100644 base_geoengine/doc/build/_sources/prerequisite.txt create mode 100644 base_geoengine/doc/build/_sources/what_is_geoengine.txt create mode 100644 base_geoengine/doc/build/_static/_images/core_architecture.jpg create mode 100644 base_geoengine/doc/build/_static/ajax-loader.gif create mode 100644 base_geoengine/doc/build/_static/basic.css create mode 100644 base_geoengine/doc/build/_static/comment-bright.png create mode 100644 base_geoengine/doc/build/_static/comment-close.png create mode 100644 base_geoengine/doc/build/_static/comment.png create mode 100644 base_geoengine/doc/build/_static/default.css create mode 100644 base_geoengine/doc/build/_static/doctools.js create mode 100644 base_geoengine/doc/build/_static/down-pressed.png create mode 100644 base_geoengine/doc/build/_static/down.png create mode 100644 base_geoengine/doc/build/_static/file.png create mode 100644 base_geoengine/doc/build/_static/jquery.js create mode 100644 base_geoengine/doc/build/_static/minus.png create mode 100644 base_geoengine/doc/build/_static/plus.png create mode 100644 base_geoengine/doc/build/_static/pygments.css create mode 100644 base_geoengine/doc/build/_static/searchtools.js create mode 100644 base_geoengine/doc/build/_static/sidebar.js create mode 100644 base_geoengine/doc/build/_static/underscore.js create mode 100644 base_geoengine/doc/build/_static/up-pressed.png create mode 100644 base_geoengine/doc/build/_static/up.png create mode 100644 base_geoengine/doc/build/_static/websupport.js create mode 100644 base_geoengine/doc/build/_templates/prerequisite.html create mode 100644 base_geoengine/doc/build/api_doc.html create mode 100644 base_geoengine/doc/build/genindex.html create mode 100644 base_geoengine/doc/build/index.html create mode 100644 base_geoengine/doc/build/installation.html create mode 100644 base_geoengine/doc/build/objects.inv create mode 100644 base_geoengine/doc/build/postgisify.html create mode 100644 base_geoengine/doc/build/prerequisite.html create mode 100644 base_geoengine/doc/build/py-modindex.html create mode 100644 base_geoengine/doc/build/search.html create mode 100644 base_geoengine/doc/build/searchindex.js create mode 100644 base_geoengine/doc/build/what_is_geoengine.html create mode 100644 base_geoengine/doc/make.bat create mode 100644 base_geoengine/doc/source/_static/_images/core_architecture.jpg create mode 100644 base_geoengine/doc/source/api_doc.rst create mode 100644 base_geoengine/doc/source/conf.py create mode 100644 base_geoengine/doc/source/index.rst create mode 100644 base_geoengine/doc/source/installation.rst create mode 100644 base_geoengine/doc/source/postgisify.rst create mode 100644 base_geoengine/doc/source/prerequisite.rst create mode 100644 base_geoengine/doc/source/what_is_geoengine.rst create mode 100644 base_geoengine/fields.py create mode 100644 base_geoengine/geo_db.py create mode 100644 base_geoengine/geo_helper/__init__.py create mode 100644 base_geoengine/geo_helper/geo_convertion_helper.py create mode 100644 base_geoengine/geo_ir/__init__.py create mode 100644 base_geoengine/geo_ir/ir_model.py create mode 100644 base_geoengine/geo_ir/ir_model_view.xml create mode 100644 base_geoengine/geo_model.py create mode 100644 base_geoengine/geo_operators.py create mode 100644 base_geoengine/geo_view/__init__.py create mode 100644 base_geoengine/geo_view/geo_raster_layer.py create mode 100644 base_geoengine/geo_view/geo_raster_layer_view.xml create mode 100644 base_geoengine/geo_view/geo_vector_layer.py create mode 100644 base_geoengine/geo_view/geo_vector_layer_view.xml create mode 100644 base_geoengine/geo_view/geo_vector_symbol.py create mode 100644 base_geoengine/geo_view/ir_view.py create mode 100644 base_geoengine/geo_view/ir_view_view.xml create mode 100644 base_geoengine/i18n/base_geoengine.pot create mode 100644 base_geoengine/images/map-hover.png create mode 100644 base_geoengine/images/map.png create mode 100644 base_geoengine/readme/CONTRIBUTORS.rst create mode 100644 base_geoengine/readme/DESCRIPTION.rst create mode 100644 base_geoengine/readme/INSTALL.rst create mode 100644 base_geoengine/readme/ROADMAP.rst create mode 100644 base_geoengine/readme/USAGE.rst create mode 100644 base_geoengine/security/data.xml create mode 100644 base_geoengine/security/ir.model.access.csv create mode 100644 base_geoengine/static/description/icon.png create mode 100644 base_geoengine/static/description/index.html create mode 100644 base_geoengine/static/img/map-marker.png create mode 100644 base_geoengine/static/lib/chromajs-0.8.0/LICENSE create mode 100644 base_geoengine/static/lib/chromajs-0.8.0/chroma.js create mode 100644 base_geoengine/static/lib/geostats-1.4.0/geostats.css create mode 100755 base_geoengine/static/lib/geostats-1.4.0/geostats.js create mode 100644 base_geoengine/static/lib/ol-4.6.5/ol-debug.js create mode 100644 base_geoengine/static/lib/ol-4.6.5/ol.css create mode 100644 base_geoengine/static/lib/ol3-layerswitcher.css create mode 100644 base_geoengine/static/lib/ol3-layerswitcher.js create mode 100644 base_geoengine/static/src/css/style.css create mode 100644 base_geoengine/static/src/images/editing_tool_bar.png create mode 100644 base_geoengine/static/src/js/.eslintrc create mode 100644 base_geoengine/static/src/js/geoengine_common.js create mode 100644 base_geoengine/static/src/js/views/form_renderer.js create mode 100644 base_geoengine/static/src/js/views/geoengine/geoengine_controller.js create mode 100644 base_geoengine/static/src/js/views/geoengine/geoengine_renderer.js create mode 100644 base_geoengine/static/src/js/views/geoengine/geoengine_view.js create mode 100644 base_geoengine/static/src/js/views/view_registry.js create mode 100644 base_geoengine/static/src/js/widgets/geoengine_record.js create mode 100644 base_geoengine/static/src/js/widgets/geoengine_template_widgets.js create mode 100644 base_geoengine/static/src/js/widgets/geoengine_widgets.js create mode 100644 base_geoengine/static/src/xml/geoengine.xml create mode 100644 base_geoengine/views/assets.xml create mode 100644 base_geoengine/views/base_geoengine_view.xml diff --git a/base_geoengine/README.rst b/base_geoengine/README.rst new file mode 100644 index 000000000..32d886dc6 --- /dev/null +++ b/base_geoengine/README.rst @@ -0,0 +1,140 @@ +=========================== +Geospatial support for Odoo +=========================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github + :target: https://github.com/OCA/geospatial/tree/14.0/base_geoengine + :alt: OCA/geospatial +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/geospatial-14-0/geospatial-14-0-base_geoengine + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/115/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Geospatial support based on PostGIS add the ability of server to server +geojson to do geo CRUD and view definition. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + + +To install this module, you need to have `PostGIS `_ installed. + +On Ubuntu:: + + sudo apt-get install postgis + +The module also requires two additional python libs: + +* `Shapely `_ + +* `geojson `_ + +for a complete documentation please refer to the `public documenation `_ + +Usage +===== + +Important changes in version 11 +=============================== + +The geometry attributes must now be explicitly mentioned in the list of fields of +the XML geoengine view definitions. For instance:: + + + Some data view + some.model + + + + + + + + +Known issues / Roadmap +====================== + +* Google layers have been removed as it was not working anyway. +* Switching from map to form view should be eased to open selected feature. + It should work using `do_switch_view` and this probably requires to set `self.dataset.index` +* A good way to open a record from map should be done with double click. + However selection handlers have difficulties to work nice with click events. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp +* ACSONE SA/NV + +Contributors +~~~~~~~~~~~~ + +* Nicolas Bessi +* Frederic Junod +* Yannick Payot +* Sandy Carter +* Laurent Mignon +* Jonathan Nemry +* David Lasley +* Daniel Reis +* Matthieu Dietrich +* Alan Ramos +* Damien Crier +* Cyril Gaudin +* Pierre Verkest +* Benjamin Willig +* Devendra Kavthekar +* Emanuel Cino +* Thomas Nowicki +* Alexandre Saunier +* Sandip Mangukiya + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/geospatial `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_geoengine/__init__.py b/base_geoengine/__init__.py new file mode 100644 index 000000000..3f12aa8e5 --- /dev/null +++ b/base_geoengine/__init__.py @@ -0,0 +1,8 @@ +"""The GeoEngine module""" +from . import geo_model +from . import geo_operators +from . import geo_view +from . import geo_helper +from . import geo_ir +from . import fields +from .geo_db import init_postgis diff --git a/base_geoengine/__manifest__.py b/base_geoengine/__manifest__.py new file mode 100644 index 000000000..a7d620ec7 --- /dev/null +++ b/base_geoengine/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright 2011-2015 Nicolas Bessi (Camptocamp SA) +# Copyright 2016 Yannick Payot (Camptocamp SA) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Geospatial support for Odoo", + "version": "14.0.1.0.0", + "category": "GeoBI", + "author": "Camptocamp,ACSONE SA/NV,Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/geospatial", + "depends": ["base", "web"], + "data": [ + "security/data.xml", + "views/assets.xml", + "views/base_geoengine_view.xml", + "geo_ir/ir_model_view.xml", + "geo_view/ir_view_view.xml", + "geo_view/geo_raster_layer_view.xml", + "geo_view/geo_vector_layer_view.xml", + "security/ir.model.access.csv", + ], + "external_dependencies": {"python": ["shapely", "geojson", "simplejson"]}, + "qweb": ["static/src/xml/geoengine.xml"], + "installable": True, + "pre_init_hook": "init_postgis", +} diff --git a/base_geoengine/doc/Makefile b/base_geoengine/doc/Makefile new file mode 100644 index 000000000..f16db0ecd --- /dev/null +++ b/base_geoengine/doc/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OpenERPGeoEngine.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OpenERPGeoEngine.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/OpenERPGeoEngine" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OpenERPGeoEngine" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/base_geoengine/doc/build/.buildinfo b/base_geoengine/doc/build/.buildinfo new file mode 100644 index 000000000..c8c9766b0 --- /dev/null +++ b/base_geoengine/doc/build/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 243253d2d3f234c2b5a906c27698049a +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/base_geoengine/doc/build/.doctrees/_templates/prerequisite.doctree b/base_geoengine/doc/build/.doctrees/_templates/prerequisite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..67a16a3973f77b7fd02cf54ccce7d4cd6968d175 GIT binary patch literal 2456 zcmb_e`FGny5Kfaiv7Mtyn;wvc(vuXLxP?+mxvz4hH3d4Q973$6wO2&i)$Fcv0HQ5W zAl&!;$1*F+In3iX-b>!I<=vTYzWL@G-5d-;6=XJw&4N@RH+ArjN6hjo|;GOa0#Z&aoOj-ySehdfZ4x!X9_gxxH&s;!ij%5vXWrY(*y?tl@8B?=8r zUhWX%S1>+rI!A=v^8HkjH4Wolbhbt~Sk>m~Hx6zH- z@GVc$m|1QbTZ>rG#^Rl~Z{bXi2U{>=S;y6kvoKPk$Gf1;tkqE~qsw?G$GhjC8fK|G zXYjBGBSFlJq0dJ=sJ2+Jq+LIbdNAauJLchWG0C9PJ%7T(d&DryU}sDSac*&lf|WAB zlVVU1k@xm9K%I`M_WOv&Q#sDhiG77Eu56XXg4i#n#Q`xRW}#ACz=j~Sr{~0BPaN^Y zQBNH6#0f7GlvI?d&h)3c%2!E__y0To14Po<93Q0Q!sR-ZwOIF0xK55*&7^57op6ok znlQd0r-F@#ay$=J`q*XR;T$i(q*+T^D)xIP4L;)GqcF8ijK%H8JbWCc`;Pm?PfvLG zB-Db)7GgH|l!s5d;$W<&`hw?YNaPy`H|OJ751(_eQl%~7zSx9n6qW<5j?%xIoBdkp? zG#XYZ@|cL*_JY!#hOkN8K!6%C5O5b7uTj*Al&7u+@)j9Tz}K5FVMyqyAE?CHlELfL zNUL0q9-KFzLci!Wd=tiFCOaAV44n@-z6FEi18+kubW>(olA`Az7UcRdU*<8svq+7h zGRV7R*L{34Bf(-@9(Z@L0^=o!a;jKUG@5XbYpt|TNL5IT`rWUB$uOqIwP4agG;~E! z!kEg$04gDGWgQHgFv*h^ca2?(xe=UOKYQkQ}dpnAYu5I`d#!#gn=8vB~ z8)5=ed^IA+CRt~uu9fr7EM$;_oN)69Ksw0WfI{H>qMJkI(w_38;U`F%gIH5gMcuiUH z@;Z!m4cB+-#TA0-G`dA)tCXUTcwB=@X4~`U@qMV5*PWn0pxcq$+9LcAYQ@QULnP#| z%MT;NT0~{Z%STP9(FBvlx1&|OLB>?GtmUsnp%r*@kv8OZ9pNpgz}1VC`ePXBEyz#c z^8dSFK80Gx?JDN_bepOww6n?PXEY~H6dR-bIUFiSd1Yl~AziaV$zqg4zTBXbra?VD zxSgB6kysZUm~i&xZ}Raa3`QY-MfnwNX4)xb+rD0hneNc>m=}{zj9KCL7TY%@?ULa_ zxCX!V@H^O7h&Yml>*76xOV^4JzbD;~(xRuy>OS~^9*h??Zy4f_&8!7``z^iu>haU! zKzDckoZ~NIQcN2X+twGJ?h^Sm$KS*(nLTZ}--|6r`;FFa`65A^khUJ}JE-++)!-i< S{t3fQ9kiPN%JJ{4weSxn&yhI* literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/.doctrees/api_doc.doctree b/base_geoengine/doc/build/.doctrees/api_doc.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3b0bf4197025fbcced08906515d3fd0b268a1884 GIT binary patch literal 68857 zcmdUY2b|nQ^0hIJ>uiik2F4idHP~yD!;HybjBx-w>~LU~+1;^cS#rJV{|KHl`QCD@ zEv34)VsoxkBfG7+wsMWV)Yt>;?vA~5ZMtt;wl!B?)SfHZJsi7dZDx&b-MTeqOSy)* zxnizuZlNt#hhGhI3b~f%y2-g>Yh5W<7NXs2>Qb2j;KuJnQMD#op`^v`Jv~$Rn<84X zZP~fGhUUhGreaG+Yn$B%vc^?!MzNxKn#d=ZQZB2S@^;_&Mh09MtQIwtiw&iGwmoOp zpi#2Areb?eWy?iX5^Xcw9Vn!^4GRk8e4(wOWVhJ;AY*CB$hH^k{?jv?EQz?B-H~mf zv;mN|X>}3#Tnk{(=B8rX{G2Kmifs*U?fh&@M=mgIAjAxT81HcS*4TrlXC_pa-`deq zF0>b07R@cT(Z#YqQ}5e@A#h|&J01$}nAk(Wxpr4L>v&vB4f6}R1?WR%dnj6tsov7Z zZyxexz~8lg;%X8l!_cS(O5hpY-AeYd)0eChwB$;qoZ?{{4yj|SL#JC?=@C0`5>JRk;>@n%XO%`5-hGHz)MDCg;7q;`Gd_ z)uno1iF2iRoW^;DVZa^%PS>*u-7D>tr)N^tb;KjbfoYhla@n%$+EpMnrpFopn%F{y zB5xE~74258t~_XGC%{!(ovSKDdn6jfoS;=3_(KK`WloiHO=WhN)gWecb-e+)x|U+L znZxTSurJZbQZ9Bh<*9LXi1=+kcCQ6#5AoXgN6=m;KNx>Q@HZ5H%iwPq{+3PG zfYlo}*3A#c-*Wg{9)By~Z^iT=InBl!r`dY>mGCzLe=D=`c=yy;Kfen8R>fZee2(N<`}Kwe{Snwf-tIic8I#{XPfPPI2|u=Wnwj<%+J zd$xH(Ni|J?4|Fy#0a?TZEp-B%+JN0URVv$?9ddxZxnpn9nC@N9&XvPtZ<+4xqP4e5 z*JR6ORcP!eqZ4fH*xS^m`!sj73t!3Jc6PdVQ%e>@YssEGJKd)-+cZx}7us%idTBY@ zQ)b)S=hx1rduslvv+W)7{j(kE9x`s()21#BVQz9`PtSMH!*Mfeqb8$ww!qk#@Y{}# zy;E&I$soSP%qjNH`BZ-6{G|Nm`7P5u$!E{X17*54zwPY&fzkx!oLlcT}gl1)B3)iOSg_mG&OB z9J0}~J6dw%;}SEwA-`@8@a#SF%Vq^*Zx3U(HZKM@I(Cy7EQ9srTyZOAT_w92+IQ1- z=V@>*q}?^x7d9tfAC)i{CgvTxASQ~mMw-}EYDccLurAx&tW(cITXSwS*N+HK;CVy$=`zSjp~D!PeebA?=Kw%uNf&RuAm+mf^GxTwlu zHBqabH?}K|Om{2WiXL3b^&pOype{Lf*+4x#zh#~fJ34_lzcz0((!k@biCXsXM4>Ga zcNE9w6QX~C=%4PZuka;O`KB6sAwVs1?7hOE(mjM~?=9ZjrxwE{(g}Fpc8*B*YA&{B z3vKqkneONW?Tad0TWqxCLcrcH(-RCtYwwQ}3j$exKz@G%n0;VvRb&mN0?z(&hr+3L z5HKF>*oOdPW-HzET5C%5B%nprisG!|WKQMl6_icT|7Kn9xa!^Hl><_VV@&7&+QE7dBEAJZ2Npb zzre9C^q`;B33QG7BH+H*u`fZ3{ILeMzQo33c&PxptTSMj1DJoD{|XFOIQEquhKoDF zfba|NA@gfNAFi>l0+_2E`)^)T@0boHm=Lplji9==GgN<%=}x|!8v8mZyxy^IfI{{F zeZq<48!IKJ@>ff=yvgk?n%BM==HBAiw|bbbhq?Y~=Bu)A!{8{|Zg=cEL|Y&95%07X zeRsy{y9@eEZu@R%yvMQc^)%j2jd@SQeU5#4=$VimOy&D5|SVP>~|{iIO%_LRkl4} zW4{X}?>YASV&*O|b5_1kO6WL?)T5NhCfaZXEKw#=oRe^q_(Zvwn6cBey2O-nBG;B} zY{?~N&e(a@j!L?1V`}?bj7FW6`wiw=kR!5-0~iJ zg_|OM;n-h#M_atL-+$U$b(J#$UwL`j*PY~P-$DDTsWvaU)z6Oo zi*)@hfqk+}%~l$KEA3KIjg!9LAc0TkUHVKImnci`AE#$-CAIoapQL%_Prr)GRJWzN zb<3}s&Hq;Fq?Q8XAqS}LC>*skwxJwK^>F1Z&J2%5n?DZWI+Q-Co@iE^M?hD-D7ZKG zlbq?Suof2l>{=l4UG*Vz#TA^FBdNZi<8+Z((+XLt21MA?4~3)pQxY%NECHf>Jwm%0 zK>EOd?n97Zt_G114`DFr2%>5T1r61Lc=YwL6DiA7m6EbVIl{LZCZ(J2@qnvkQ3LeD zQ8;QjY~4O+i5h<-m*}mQC(jC+hf&$My-tss9gtzqt<0>tyYxyYIW4kBQC4;$hm&N>7V!#kJSbwL;?6AS#1b<9-&ul zL^&I4IlKtpigU7vyLyBvNrYqgE$4HLu4)r$oU#N0PE{EVC8((+g;ePDW}h(M%MM+7a7uK-;k)8CY@D zV1anRjApx#x#AS@qglQ1*H@9HGN8bcT~RpdPZXmE2tmOUAupk9H_~@E=mrEvv)QD@ zL)e3K2`UYgwWpTF@r{Q{I!d;xkd!6rC73lzsfSgzQB9}-{ALu6%3Z;WMg z$TL^-@S-WwH3UGOp9zTz!ykoepC!Rd$KrP0ZBj;kWRdjcM z;%zt&bdFKyQ`7}oRA!otQ8Fbn2e%UCu4MwhJ4(4`nSv2d2NNzFx*An+K`EC| zax1vGCOZdnsMrD9f@~?#T*QsZ3q?`N62utN-1CD&+C|h^0WlcTE|xa+e*mUSAQ=9> z6osQMBaEcw0u_HmN5IR;_*c#7kAVCB$49{ELs;qxK=MYyD+w=lB)p1bJF_uRN9A;V zMC>CY;?)pUWkmcNsvUI=^#miL3y~w@wWM`*MEpCrF(OJ~j)>P$h>VEWQ0|@FPi6*JIiNV<#5v}OdKcL%&NhEUy<7O}t4dS%fChW+Md7IXC`ga2 zf+QGO?Aq8XjLgGOZ3a=`k0iVxs}IJ0|TBw z;ixCE^#)i`;}5VL)1M;G)0!tVNg@OLGpvsq5U73@bf^x^tvrW1D1RP>qy9kw+IylZ zto#M?{8RJrZpB>xS*eoff03kk{V#zI{c@kfXsKRCH6Xl#!cnhMhK3*t!w_C0&+D2e zm?;tEZ?H06`J13ac`&>3FH}J7TPPg$Hd|}8q9m;L9rC=ZdBU?R@3Aso?fam+YW3{O z2dIGB4^cSkBevFRMTxK0Ncle|=O+fIF$OT4eo9&tLy+=+20Fv(=M?pY7R86hrnDuR z^0*Vu8yY;%aWkD^)SYtSbc^~@B%~~Xf;j1pnv9cQQCNlUAWnWQZR&rIvTx7=9{LuA zqrRj3q~#(I3*aRF^DY6tC*u#A(GP$&df9*W5&%yysvm*Ei+Mj0QEbfnnPi*KpQ35k z!`ui7bHAWdDnX1eV_Yvv zM~v%@ANdhoh;eHh`iAa$i5_B`s2x z*l$L%LFA}7AN)u*Son2v4FPHhb^&xK3QWthtsV_TAA32cQihSftU)*QGI$LqEne?( zq;r0rvR2Tt`0!4Xk^ywZsuEI`=$62>l9css12qDB0KPH`%*kWx1+C@r+aJalv{ofg zLi6xK1ieBuj$~C7bD(iG&|P1lg&Kujs9YTdX5raZ`$`mqRgNal7|p`~t^1&8tz~Vz z*0G>NtK7QQjntZ`f#S7LU>=^$wPH~dRy>|Ob()9Idq}4jwG&tuuXZBnP%Dp!NE5X- z_Mvng6qto)W35zFgq5yGp7k|Pcyeq5R>o`H5OipjsHi8$HbMo|Zj8cFo3OQ3D@wv@ zljKQho=jhe@Xu*6coGTmsy784szdG6W~hYv%~3dN3rf)HMOj$=mgLz=^JMx%y*Z8u zf~`r5N3ad(KoD)JwnaTaOh$ouXbRCFM5PbH2+>o>xxK+@3}Fn>Q%Q?L2}1M^pff~I zqp0axROTXB6~5y2E_WBGLOF-Yx#onv)tKPn(^GbM{yHnSnQL@i6Q=MQdAr0a72C!o z7R)PSid)`ZX<4MNm{oa^JIPm9Gi8p{H8dA+*<5bWYVeSu>)XVlVn;#*w&U?yJZYzL zWeBOCI!nzE3sRQ20x5zUahM{^q%jq?2Pwji(x(3ZlCe7hF?z_(C>%A5_9ZRX19Ak> zN%+r8QPO1GMKk&-N(YYae>_Ez2lG`uka%f|jOg)CGpJojwlfm}779U$|Ys{bX>L#WRX0 zi=-a{%uGKT*#hZDlMs4!A^m6uBf3Wpg`?(R8%{swx^fnC=<(7I@obe8BoAhtf)psu z;(jvIJ2)P|EVh|x$UJgYoO6B}(jxrzrV!PNDu8Z7;iw|p>rqeivNtmoX(!z_=!R~l zB8s$l-6hbO7?dfhLyHPxkPO}PtI9}OqFs`a1yY)EYauFteh~^s?S-wEkBAa~%r<5z z_a^5)2B&e{Ic7Vg#oMtj=p3{6qp1D0sLUx9W419%S@v(S$RI6GZ)0i_(~_9LY|Pa( z6)coZ`i@lIMl4SkJS%sjkkJW3)SbY>^RT-;~Mzy1k zp`u`{b}@3SUQAk7$LeFjjj>t^bF4m&LS(Ey9=~v(g!{(qX{C9cO`lfIo{Amj(0&3H zU}!&42y1j*z=wTPy+)lN8zZyV(X3lqQ)Ql8FH>5&y|`d zG!rUO=PK4m4G2_U4LVeZCQ$!|Iw-#eg`=*e0PQ_d6;}Rt@?58RBF~tK`s+!FSAPTO zP#<|X?MBoBz)dI|bu&e10HQ7o;1=@Ss(Bc2{fE(Vc zTWhtVB&_ys^4z0&D8hd@?Os;KtGy3&SFN5ty&n}&`v3|@J;>Htttj!;8rNnIk@I1L z(-;I8=N}<0iXpf*dlYoW`Nt^gaV;vdCE|RV@4EWWr&TP}iN zIIKlG-~W?5Fcbsv zi}?K;Z`SeUcJ&e%vv{ovZ}^qaH4c~8D)kGM-m~lO!+0-)(NV8Z2fGSiQ3MXYai?A- zAvUgVwQIT)pum77=!%8;(OtDgR#7EolrlZ2AF?D;i#Y3To2Hql>HQ75agdmI z4InLE`9RVo?;1o|gS9N?UH;pAYDiTnDNFQA-ZfN8eW-OKwG3)tz%Ue!S{7T+fuaTm zVEAxfxKqQ)vz+E(3gEqVra5p1pfCQ8C;S0>LY znkV{#ophvCNs3pV03FIBujZ+ds0M`9P&jH7WoQVZFbrXJ@~okGs=aq7Fh-Lc4`U4I zfKlbGJyi=5po~S~s5L1^LlMPcC~J{toaW)t_uu1F<5?Szpbm8R=<7ym0&1XmA__;X z&E{IMsPPpWnbyZ`(5oBWPgU(EB1B%*Ei~4uoPb+o)uAbURG^Q+p zj_k~hKFrQGrt%7`en?lFNSlA_<+=JBKaF$7G1CmWgeLdPhy6LLX?R4KkN}!d~!oB@rVZqQnm3 z+U)_sOT(rTPON)&Alc5W36yU0&a*I4G&aAI_+c8_R!PF9quNn3DA;#{ z59gTNwszF6*oITEKe=KSb1L0CXuC;mWd^o8s&xi78^0X22lpcxn7F{qz#7O@G0ylI z*q*{4%D}Ry0pvy$j%s3a9y?34azJ1P)=YX%)8m%0U|+-lXrN*OHiymPQOyM%sA3k! zpj4Fy4{#PxILe|xjZ=_moRWXdBfUk_ExI;@hxu14$?%AeEBTV?S0#(Fc0>2OWBY^y>grK<$Aj9CZ*|Yrlz- zu-b#kbBN}NCQ+jNP?F-69|k&z8iOO#uhU73f(X*DGeBqhbtXlfrA7Ub>DSq!F=YvKq+f2_ zVfu9rl~-U5(yw!+%^#Y6od*p#0_US})CI(ov|PmEAsht$Gt#dM$$OFJt(tyaOd9M$ zjJgEBGovtM#pf~p(va#>Fn1{jy9|tux*S_~ya?xDeV*WPk<4K zpG4uPrzlk;7K|FPV?k0=TQ#~|3KlW7brwy z5Um=6Bys;F{Y8Urc!f#aOQgjEc$sub;$ESwSGBB268BnFDJe_zOA`0Gl%XW<4b;GZ zH&Hn1U)Xv{oTz~TMiTcHdEVAMK|&@8%sZ@%q7U@G3p(@$N!)v=fZF#_IO+qo)_xNu zVYMHU=OfJ%O~pj{$0Wro{{(a>k0x=Sq8boBL*b~;DMLdLg<%L^kmpOyQ!Nb>7+;Yb z594dl0i#+H_YFvZ@+}HXc~g#tB8tOMz9-KQnkSOP{m9yQ1V4f99(^~7`x!M*{0j<9 zYO}dkENXnkMiSQz&j&kdDQvxdVvL$h;<}R-1ra21OM}iNt_MZ+)S~{#B(9feOj!aQ zNt_#%n8fv_@(Qd$64yuC{Gmx)UueJ)s6pYVe#DcsT*Trb90dL|lDPil9iVxuCUFBv zgIx$-gYY{u6602U66Y?0tOkR%ODWtCFgj`|wXna0Q@CYFh)qR?k!)v1RS%^unjnGe z5_ri@mWAMI>DzGBW7Qz4_2Fg~K>d=ZZ{EVuUAnR9FG%mMF|C#d7B6vIfw*G5wIa#- z`B#J7$n+tAiezdq{B}k}}w2eTuqgJMP-z%1jj7i%nq;)ZATNTVm+N3a(wghEJ z(l!#m9JLzv{Wo=7bCxt^6C2EwZ4{-W*RL*w(K=;YvD1F0)&MKcz|kliH3r*o!dB}_ zTFmEOf+L{D3ZXJxTNBkfU0Vyk@V*B3Bk7v>!c5o3lc{1L^3%0C;SZ&26Ho)x6H(yq z2b=4WTeNb-V7j&r>Fa8GW~EL&A<3EnjLF)1Y#9%1eb52yHw3E*)fhCkELL(5J8i6Ego0GnU zK{q_YL~Tpb;?-|Ox+H2_Q`Rv6 z${r{j)j&Dg8=^Q2Wl!>CHBTf_Yh-Oaf+o=2qwgka&8UIm911+q&*oaOsPPpWiP~Ip z<_%6`tYo5AAT0_aNYpIQnW)X9s1_~ik4)5BMPtem=t$JuNW?^~jmj&q28mix+Weu3 zT01o02-qkbrHChKxroI>I0*b_Bx)t{mNjqHM6H7~*oBZaAHVsUa(tr3i(fams|Dci zQnt1bjE-7FRqQn3Y;7+RV)Ku^N!AO$$4z{=kb;zLGy+Z6%#Z|SAE>C7w>hYH)V>7Z z1J4}#Z{=;K3%fk?=Gy0f{>BR``vIDl#_dm-v2HwoWc`r5H-q4c={%P+0gufO7JnTG zSyd9cgHY|LgQ>`Om*rw)LU#yhT}1v3&lDa?fKFv^gG?r{8a)DhfIX12y*i5Rw| zS)CYSW_5q23Y;QG3SqF$>SDh9W4cQn1%8~fN29>o1K5UByTz`!#T@G+;MK80t<3L^ zL$%KDj>j*&Bf$MgekZOm^ScwsR55<}`Q3@aAIk4eLJgpwi~_e;*jx|zqLl*;^Se_? zKTXr)9!xNOB1xWsj!E9>Y#xv94A6ltfg}7IBS4)x6THBE779n5O~D$sAl0}f(>sUs zb2Z(ft3$Y$>77S%Jg)OW2QCTJ(SvsZNPux63P)W;IU0s2)-WX9yO{J#47%YPrhAu? z7LVaF(k0!yoU;C^Wku4xE2>IKS)yOky(^^*rF&PQ1_oS>!cl+2)=PRs4Gb{Sy=%yG zt>y_*H%WE=&dMnIK<{;+LvN7oU5^T=y#a-zZe(liH&GH+dlPwX);!UqO_bk4QoQn8 zL5K2ax_29@0pWHOj=F;~Gz3u?hHxi&?$SKf5;lQxH_7oZ?g8EHMUiFf)x97A%6%vt zbwA~3D55wF1`$@`M#WxD5ngNa{4QZJKW7^Pm3n%{W7 zO+Ln@UIk-*J^3P%dQE<=$ZTnZ`%NA7Iwj+~Na_vz!UO!=*I#DXMZTFgEi2!rlyBy# ze@Xk4C0G%lHpeg`A4*bhv55iBeV4)4@wPP3V{KIAJ0QVT@1np1^Awb{Ts;Dae&V{s z?~~;N%_1K1aQJUSd`Mbs7WEOyu}|QMvw|eF^C$3xSCXlZAu^hL%3{!;px#lRQel#} zO{ei8M7$K6ExTVKETL>qP^+wjFdr)x6x9TkEy+rME!jmmr9OiI-_A@Cp=!zJ97WND z27E@SP;O}GO7bcVaD;hIeNIa%kFfW)iuyv3)-SoGU!py_!B;38^)Eb=yxOoGE%?q@tYt2i@&T8Yx%(meE=Ht0r&w8yL6fKBN*|<0CnoY z);&r5&iONGv7Pf5lJ#<`Rq~{&@Pght0bS#F+9uuiS165iU(d(g5Y}<823s$82n_Ol z+?{0Y*GEo|F(}!c)#1nW@GVjUnq_7 zaScegZ$ng3gM1(NCt3S=0Dk|*RX#gPLGi1yY9RQ#*0n=P zj=j(~Q3W3D{6gPsBaU1KDk6?V{FDy}s$n4EB@SXBeD4E>I(QBz!5F>Na;V8q%t}mL zUViqb;Bj6|T!9TFCa#EIj#`QPNxdxZHZ$alIf-dAw%%q3H9}fr(I+X4h`2Hv7#iJ( z=xbO-8q`-2xGD%32oor<#uUXQEmwLkS;vNcHdUwlJ= z%C-E)Y=W?i%@2{IF&eGKY2H;Rjs(8&qQ;;at5i|6?nnVB&LWH@sf)7+Yl0cG2vQiT z)LN7wvk2qx%TeRG@2}iUOKRJT#TKm2reskRL1oSf)Ug2q!vrA=(Q^VZkNaX+&9$hB zV8mfr8-=6R!8SY@u&yh|f0>OK)Ou1~ISa5ps`V_u2KeQu4Y?ng1rXEBS%8hmRMDk8 z|ErCKKQs%l32J~jiNaASHrIzlwCa8&FSAV|eN#=3dzp=1kjsAq7BBxdW4m}*n}ZHm zF)y=ev1$u20qK?~9JLiCYNUcqBbDp^tx4ZT(=9qT1c=xD+maj)Xfo&kY!${-GRlMXA{^o~_! z;1dX_m&^T~q||GzNfWg*_5pqt3P+`}^#Zo20C?kKe;4x9Yn}{V6vU@~M5SEASAIw< zP`NAUP^lZJKVc6FcSC_Ckl0jvOT_yMjqA(Vp#DXYUw-^*?$zSyBRN3#Av2|sXF!um;Zi)e;5 z`XAXECZq5i2&ys)&qXyp?LaO1&}b)FE=G>T1(G`*iF-*}$&Y#|3)~orr7(x$c@!c; zaSMJqs+Idmej>bzlWM&cPda2t&1_4HwmxPlO)!!@4kRw}TN~)kcB) zF4%^L?UF0U|7=P0pyrR$!%X-)TxB%V3!ZdP@OqfVy~ z4MJ4SqR!Q#c=57DGrx7fZxkh(b8}=$ zLcWK9kGII`jS1cL)p;TzWeF6_@VO%wXCuz1unOJ54BrLPMlajkMP(PF1w3>S3P)W` z`AN$~AQr$${3ll&5{51z-SgalQIco4&`7sAjk#IPH{h^~1f3P;_9Z8(PA?8;fp_Z8zz ztRBd2L0cWjZl(0wxUc7aBYgp9qBzuyX19~O;xzQHNbV4RJ?k40rtSm@Hr<5+_gE-L zcMHM66OGF?-b4Dm2Hn8Gkaizw@fhwWT|(Lel=YyN6$xn%Rh5#mM8AZzhouaKv`0__ z10F?zdo0*`Ax+fyBPv7M`2M!*F1BYSH}<(&BZ$06KI_Br%(+f1(~BUPR%jmncMo5S3vNFO%mL&BL!> zM9(Dw@+#@^KwbkKK;%;#(dO!P&;aHQ6u56eK^lyx4ukm@dEU}I6#-I!yiHm>kas|L zJz_4^tlmXEK)i>-QSVcT1|cfLAU+_^hnk0TKcUe>P<%vUJc^G&2Z{l3N2sm(1O&kN z6osQcqZAE8l!jq^PM$9`4@HGWErIbRiSaPL0^NlXYOB5m0WiKnfkk>KMZ*xKJ`5w% z_>P?48=S_7$xP!1(xO;`Oyft;nQ8n)Q9o-@nMH8XPPuZ2YAa!xQ5n0jI4QD>Y-15$ zhm*xgv-7is7Jl+t4^Ld#4E0=diEBwqkJF#*oHQvh2DfX*;Bx?4BoY;Vce~J(ZE?Rg zfptwiiRu>tm9oS-Brk51WAgGV@l}`;Brn}?)dk=FckwR;5IBzAQDAu?Y%#uBu2JG= z97_K4@}VAN?5P=ze8``S>_t*+7Sfw!eMJn{Hk5K%)s+8z2}oZ_K>9#Xl?0?OsHl^;4$};84G>UkIaU7p}eEH*qSZ0 zP1pV}II4;prXf5bZP2lSkvi5Gwm9v;@W*vhG1X;%rA@uD+)-e=} z=m5*0aMUnt!&%3&uAIn~b6{Kbgkw0G>4alB3SOT3`pVg8o3g}zX0EXU87s~jKi61M z_=D9Yb@x##p%zArK!KMPC_*26(a!$MG-DOgS2gH{dZrl((&E*RBwf;s)hKI}mK8}e zR<9~0Wr==CGuDtYlxB=Z4Gb8A0<-GadTEBJ@rP5U8Dq(_rsnaI1{urOVpSA-pmiMR z(CVcb##ar?Yf{ttt@Kcwo>b%3aZyf zfe$aUy;d!XeAP{*_I#mjVO_Slxear0r5gNiYACkL=$>t<}FY-YD>z{ zHj6^vX3I5dE3$3vv%#osxYLPImSM%VY(H7I=Nz~14Onul_NF;oETLP|V`cIRNa60v{Bn2n|5gg#qkFp4~N1)hu*2 zY4H&D038r2W_TJ<4-k8zz*hn&M1v5OJ_sZ4Y9wcq!D++{=3ULCMWFui%qf0~H_HhfJsKwpWts8CS1tMJjV4)ARwCXeHNnVVi?1$mYFLwUlXj~e zBOjE(W%rmuOJN>=l#Au!nAu~)VX}4%Qo05%jws9`5(|OmR0)sOprUn=d^4nFQ3Jlk zgUE?}d`Lw90IPgjWbEuZm4^w)+Qc{iwL1!dGgLuvxKH3%^lrt`2-3!R!d(A<+50W9 z0DZU>g`?VNZ_;uPiF7e^V+_X9;fiEw*DM)X@xC5uJ3j2f4-1q!+S`jtz5uPi1EW6) z!@icNeRKa);NjLc_dj)9LjOkS$f+!zy<*+osKi$X>h>zM*U6LnsN5v68!8LUUYkN2 zf9BgUrN@4fwWDYmIWi2^9OHz&cSBo6NMLtIWbBp4&xo%?a<| z2ozYh3R|S2TxX;6W=D#Ae1#eX!%(`1AXZ0lKWa?in;LaAIAGE-C>*sITb=sCq+_`g zZ_;s~MmyfJ_;-iMFGAF(aTW) zj}@f*`ev#NS#P<!wV!B&zAtNL_+zvGr1tqtH^8XX|CcC$?UWANVu^*^?HV zrz}wsvGodaLJ3dsD-Ilqri(2Z0~CjwVtU~*uHDXf34={N8rRh zjtuJWs1@_BBQ=U9Fz8 zsDyR5qHxr0Z0;)%tufZ!PX0SIzi%DKI&~*%#k#vlje-fRyIc6gx_j`$QTLKPX|Z|A z5)BdS?juK3;IyeVV%`11A6TcMJb+4A_aF*KJ;dg|0?`^{-NWR6MDzQ7Q;**2QB;e0 zkC7Zj6PWk7@QHa(;0I>%$)2>>JY|WBh`9BwQ+R6@N6?)*A@<>Gz$ zIY?$Cr>^5=d>>G}JYM=Ceqqv|`}%`9likNlXUyDYr!8j9*lB0=u}DZ+0vR)6{!161 zu#th$eZKE#WqT_7z zuOxLk8!fXi-gnhhH%y~pK3WQMK6)wa*XCtDx;uVhBA@%oOg?NCZ|LL3HlNlBU4Z}p znT-~6&DrQ4gn`-Up7@bpM$bmatc~Y;RP_Qgx@>P0j_QMLct*OfD@!l65*#yCBZSI_ zaQmUUmaoC~$1g_>;J!|2J3F%S5UhC9HRv1}O9!%T#kuHTwG0ye*j4F#6YJDqFv7+m zD6m8lrRx4681*?R55g`(`Y=tmXkZ8wA2wT-@v319HOOyaUrc=DHI;=sS(V8cNF4`@4#%&C1qu>L*wV*?9&`6C% z4HU150#oj6uKgxz!ivX{XT0X|=G~jcoD)tjlGh+U{$8wIA@*;cC*1!0xz zl4m{5W6rsY+Vxo-uXY2_p%z>h}J%lQH+cS?AK!=Agp@@2bmfskT5htk@C-9y_ND?LbjjVa3*D+s0>u z729&Bi&ji#`|Wi5&?LGXgejeiQrm+L6GC(EQ&9)}JD|YgJQSeuiz**K=iaB2XNKm9 zOreYVnWV&8qILuw>LYXSJE0Z;c1D2(dMH8z5OrYyY4Yr%c_=5CLKgt_q{IV|?&kss z8me7U3jlvYfu(sULIV(WVF0_6XSU|4m_Qc@dyp0np#gM2sF-`-6ZHU*Md7GM3eg}$ zr4PcGdv79Vv%zUZNY1_INQ*)V=HBO!F4_59%F1h5nd@+l{-2zCR|Qyr$SSVE)cfAB zW67VQ3<7Ewo}>(zjhw*}81BsbJo>icSOhcgEy7&?f7th}FaRC64Fx`)OmmZ#dqAXr zp%1$g@9ku?kDagFIf^G`c?O;%d}83a_~EGY$ey&=9Iq${)$738 z!1Kuw73j`IUm*O!e4mTuLe#>(i%{Sd1h)4zh}szYE+PM=n%|$T)pOC8p;pYhoYW|q zz`VZ-pO|+AemLq%vL`JzPg$ZNV%}BchzfM)qOTVIV7696`5P)>-8CrirC~Pr6^Pat z>;6vu>omV_ot^-`9<^fK4WvfF1lHXsd}7^A_<^qslRas%dCC$E5$kRtM^vCY7k#Vn z2i9pQx1kc&-Hrmw4zanfK(xkKcPIJp()@nkbmxEXMzxrC56Mw9fqC}|pO|+aeqf~` zvL`JzPg$ZOV%`JfhzfM)q8}9gpl`ZZ9zrebdl-eI9$|Z5gQ$(M?@{tUrunPPML!OT znD_)aqKE<$pAE%rXgQJHJ-qy27Sd6Opn=oraX@8vT*l*TIZANGZ%Y$TuiM z<{;n1FMK9|`^n7kutBwwee*f&vFa_bAbJWsbK3B2w#2mIJ3<)Q#c9KL!Hk3Y9tu34 zk8OC`@B>%YV$Kd29#$U;rE=czBUI~`_dmujM}5Nm$jkd;stcW8qWzRi75&jq$UYN( zcRopfiS~2U0QMIs@Hjr3>q8`3*%3K+`4#D3YkJ&gFZ}KxbC(9RbL8CnhHc}aeG59E z#e7jC5UsugBM^U&!cjj^szxjrHDZ~&{E_sZG~J?;L!dZ!`7_D!pnd@zpkzYFJY>J3 z8W6f+mIQ0pVCzjwiBb(gCNH~_zO+F%oWjY=9;C(V?+H5RReDiWZ!OA?PwdCy+&)$1 zV6Il$BXR00We`l*PSv0iR`f&RsQ%b`R){iKq31C5ovr*Eux9`{2O6Blsl)k%L8Qgo zGnjOFv2h4x4K-wmbX<}j17H8gFUgIAi^ZABc(>8L&E8P5Thuaw%zfj27!k(~qsx+P zXSRVA6@p@3GYI;&0mFa)et-T^Il(Q*-Ua9x4qP6t=y=-&JH zD}o!Ns}$zwx)O!R=sE(w@Q^$AlbPw^Go#XZwPktpMc!t_Dk<}`Egkr+axD$mci$U2dODq^z~IEZ#ohp_SohovK2xW(w+M_*qv$bJez4ATFQfq)Cf{38t`j0i8L0 zJw?f#4Vi)%4RGFTdn&sifpOkj7(hQ@EL}xnX)^>@iKRJI{pAriv1OY-LP6ggl389xp=5$bJ~BqR0cKhl38KUQ9g# zyHNRO6plKQZMDZlL0IKc7Pq)bmM;f(c^k1)wvgUPw_FX;GP4 zoT+hP&K<;psCu!;NLc~~QPmw}8C5T#xC-q-RJ~N%)c-zpm!S>3bU6w<<4p}o%f%p8 zz)}3?#nmgwc%^1EuM5P zuYu?)vGrP1V~HH<)qT^AtuAWD*6T>_YHYn8+=#7Gn6dQ+3X#})BYt5W8}27FJHgg! zQ7LTq5=2)q&5W)$Qz4@3EkanWi_!H~Fr#v#y(71Jd#I9ml*pfWj&^4g=6gFRfVK1Q7J%Ftj zV?~KS)-uLEL!M_fj~6jzq<@Z8QRIQr=Rt>3FUI}@yHNQ83Or2Dw%TK&AguC5^1P&Z z!ZG$`R>muR1$5U^9b;cb1=PNV!cniYwN@)i!fM|j&zqX3B2bFS{~|43`&*zxdqs?W z8}$J34hl!TOCcJBs0@R6k38>do+@EdV0=JoJd6)P2aGB)_9IXLkVc>ko{VOq%1*$AnT5{ z46@%)UWNJ~$bKtr>VK!c@6ZT-`W^-5=BXlSxgf+2xQhS0DElKBf6|O*lwAxn|0klX zzG==7`!isAA@&zSjt#NDl5A(THOAIJ(h|kj;SyiF^{pCTmqN9px?}5&M{ay|Av3-% zO>$S`YY%WEzDi-n*Paw2@wFFzIjT4JlbIPXv|3y;j9!A^Dt4K{wGXu+xb_vo@Gb_| z8Ze_%_CtaD9N30~>i}2QVt(YLb0exp)`5_qBkLgQ7|eaWPPjL95jXQLdY&kU{Fo76I(!oFcBusA(M>A^|R@N{EL9Zvdk2Hk+cn7TY^@i0~(U1I8r zl(mwU6^^MRstQS2qF!R^%2Jv!brnE^XVQ34Ame z1(waBf~4g_5F6ko{`2DL6f$nF8O?Zl3{3o=h^KsxiQ#lAP$8-58qYw#i=ZaFs>1Wqnap5cL2e{6OECy zne?1NH&8H=&LJ%x#az-QlIAI^pk;+4sZ~`-$`bVwN#{vvM$#5k0Ddb9ENp|V7fD5l zKcX^{7Rl4DdAztNote z;4}sYM$)56i-HLv=`o-)k}jsGW3{MG@2c`N3j*nJA|Yi76a-RtXk{Qhp28}02Z8i2 z(x&sfsu5);pand1A__bN=hseWLVf%H_s^aAN= zgd7`4PbWEiT^dMQqDb0LBIy~BTP2d7iE2lkMWwn&x{=g{%t(4R$z6@4=YSiLR0=ba zo=YJTNzcPCN1f08`0G-`=p_iHVwV|8FQ7Jr(hG&quZyAdA~2&sZT zMQP6GLunU!Uqrmg{ zY^yyc3c@PyCC`1DCmc=hXJx$72S9f%)zS1pR6y-RC>-@LTWhtVB&_xk@;s_}Dng=| z{1|ER+8+lU+AE^z6Q~D>Cs8=+DGJdbL}eJn)8u(Z^Hd3l0^?ay<6%4pI$%_Zrq6={ zApbz&s23t1>y8H z5s|V43&N>8zA~J?PH7d&gK+wWwCVi1G^*`QG=Y!)g#w@DrGlj8LJ%9^CjRr{>Dy#{ zM>Cr7^w0kb*QN51ntmkuT_E&A>3c*Q8%p0N+0Ja?PRjX0mMDs@AW`%Kh^!JtKSVVa z@1Z{36Wu84qGc5QnB=ZT(NDmQC@O^+ML(qwiK3t3m!m%Celjy2Hby5#1AFBcAMceP ze3Dll;uX|pjQoPK5F@`7!U|oCkzaus9qnrrc!dDlaE$!cm9>~3{)>fJJv@Gg#yUKH zPw_u+Uw?g5rfq!-VU761jEp~$x8kJoBjZoP@4fqDh*Cd;0E2!(;iz9JMITeaz;lK{ zu^U!Ez^et=dQrzfz@XTjw0HzdlP*EA2W9otvNCu>!FxDV#>rk)#iT3&AYrk$lzLGP z_c*IQsDcT7QDCWiY(0pg$R8jX82gc@zvjun!r*~WQ9gi#s11SgfuKWqsGS;wN~j-< z!cjvgL3>b?`Ra}Fc_=xTF*uFB$?W*Y3lydjpKnx8B2 zQxCa??O4>cB;S817ZV+&92SR7%q*75lc(&QD3!6+r+nX>51M8ZrFMKNB8!#8b1eyX zRh;ETQOXj;7{%T5o1^#&)L8*B7{ynVHuZl1rj;NV{vLq>&;1id(sF@{KiFw8+-r}! zewVN1uEG|p>J~EShZjFfkYHG(MoLX)19%mqNX+7A`CJQLP2(4|@p+W_IVH=nH|Scm z8U*Cm=Xz+P!Gbqjj|rv8u;a?(cITx1(2o7Tq$FuDb}r*!dM8cmfQwj zcOf)i{8(wAUuiU?t%+K=Z!Hv#8b=vP%T*yT^f@oD#Ed6Pon~Q>bRqaFpiLkxHY80X z+0JYP4^~-Psx#LGi=r*L`z3^}4G464WSz8iQ17U92~eM{+P2Jvz`EoU)7qp7bMd-P zMQ`ZJx92-^Ngb2phB6jq!;;=PwI0BGxxxB0B=$gTK(d|L0mg-;NOI8W%5I$@8k-*| zKHd=0tE34Vp&D;RP_^k|%LUFfVH1)&O%rhII#}>634SCBQkaQCiee;Dn1o-B+LZhH zS)z!++#Rbn0|!nj0cmCho3kOZf-QtFP-g}5mHFS+zh$HVv&LDlJrdxDF2q)iD+L7dVoI8OIoN^@<@$1f@0L3g6 zxVJ$u8inZ9DC9NCT}ZDt=!UD9>tslahp;Q?%s2i-QM+kT;j7}^tI9}OqFoZ5*;4B3 zf1088Kn2h@pm5Zl*m`M>C;@tm1z6%u2R^YyDg{oLiP0YP~VmY zU@T?l0_fgswhy)yD|VL_m5>B_tXMuCOgIPjMS(jJ(n35W$?^W&*>-liXAAPn791zW zn{=;Iu|qZG@~!#Fvypud;3j(F%IzCCXWaYoo+!@fjMwjj>vyP)gu%CUEd_a9LBX zxlSDhf#@xVqriuDvGvX<0jJNXk65G!hTWw8Oa{w!){zu&lrI3zI+{Db(^;19ren~Y zZdy#y$C{##b4820u{Jvnf?k+iP>7q3m$E*yHO9Z+<0d(3RlW2V$b*+oK!LXtu=Tto z*i0{3VXvIT1}FOs;FVLjv&3FG70v0D(-l2a@98k|m5{l`wyJ&RQiz0OE<=G;c(C;xBk($L%wO5y3cmpyb0v3{*fCe3 zIURE~MgPqdeT^$R>KH*Gj=5IKdS=bP$1&_Poq6Z)kPGizhr&_UW9xZGFm~dd8`$7R zzX7~+6L*%_J2#^_y>kmi-)f4!%@rN>j-U|l+%9E(CjC3lDEYP|FPBvokw-POWEbUB z)lPH=6u?b)qQJuY*m`afu${Q+ZZ^2bZvZ#l%bg{5(|u@8H{DOs5167KbVWzqBq+p9 z4@voNxM@DpsA6YsdKe1erbkdX>QQVxHwoBI-1Hb5JnlDuo1Wm#61(Y1G^d-MqUfhh z(a*S|qizxu;-+V%{Qc(|ds9I*NLjTLJqNk)&hsd+wh^|TcLZY<@8l%Elg}t26MO+I z)6;zl%?+3;Q)Tr}>?5%mV5V~=^&)C#tCz4%5AZTIox{D1I!C=Cl)>IdnHqG$Qc|z7 z*=s`VgRfkc3vF{t>UHcIDcT%W#J9ZKnrn8Eg(^xl>J8BG!6t0+5`*xjhx&PCW439Y zq(mk47AU~EjLJ1(&De(KTsveS=fSe{>TS@br~9ipO%1%H?NBZ19n_^)%9qRSn@pG> zpVuwb6>{Y{bwxFILcZMEGC{p79DR{lHswT(dQWQ@*q&<_Q*}mFQtwmvz!Ih)+c5#s zDwB&P^#N-Kl#8O$!}y^{>?w=oFH#@L?*T2@wz(ZhSJ4n3`21Mvy64)|C-S3jGo~tW z5L(;Sr`Q(*c#!aI6{Mo-Gt^B*It)`wa3qsu^*I@9^4S*T$7K6L*m|Z1xcFqjA$a6V z;mgmOo*scijx!C8DmLS2H0a%Ywyn7ZKfeN7daxK!Lc=`tx4;|fYpL$poNMfutG*FQ z>A|_y#+-DSMR-;-pTm6Yx2QiNy)wSPiwmVV`QM44UIMMDtiG3>0rCyEwvN_@g>s#x zen1_L>Y(P1*7gQJ$uFrNQIG4D=34hNiz>zkX3DB3*_dqt?Fm;E-Qy^PN5~& zfTQ1l^dF|6zyAVax({gM*O<6ov-(wbhvXI(%F_MI9VOR`-LU!)yx0p9TyqL@)l%4< zjs%&&aUPZm7_L-z)-K!BQq0b4$l-H$Ee-f?rOZXc<4c2hczR{DX!S3cf^O7+d1yGc z2bhjXFP&?fuX<9LHoU!*>u83Rtu3k-s|RC_yI9KUFMZ%cm?hPl^+Uyb_(*fPP==w} zg?%WqpT1y`i>7(1FPR6*`CxS98rBYq95K}o)#;ucYdf)evEmQ!d-su%OUf&a0uQ znc62kFx*MiGQ!w1J!@M)8YaJcH)u?1S=pP^#koxMo(a0$glu~O-}h{)Q#ho)WwLB`&2iPES$U3T^l-8t3_Q zZE_Tw)oP&P-0X*yJ86SpZt0~9%_TJ&zwtT% zwzc_Q)}GyA@ZcWU^v5RO$GRS0=*suiUkt9XrpjJF{lv^r>sl;NmtPzAHwNfseg^8< zzV)mZrR`wra4D9vZpMQi`Q@#TAUeN{{<_03s|9VXA4JhN!nJOGxBPIvA!5BG5S|z2 zA=Wt2u!6o1*3K_<&@cfKKui`aC} zLJ1e}hf8uG7qip+Ng%8pdnrI#7s^IHFXO2iM^)nkRo;hUOl@_Bwh8!63BRQ<>)2TXrLsmg3*l=948^Q-@ z0|W1df>$K`Cf+ry?K`K-9omMx6x19 z73y}=sECZlmntnvM71oTk5nu`>}&J=;>w(CrA*eEeE*cvmMN&FiTD92WzLA2xlCxI zCOVHjl>H(!G#grnHt-7-jJoTU;4Y zl{QPwknfyNT^g=7QB3m>-mmbfy@ zw6ZooFOKn9GD-z?L@Ss!S1>w@M%Ees=PUEdD#h`fW?6D@U!=5eGP0F| z7VVca)Wy}EJjE_z7w_ViR7b97(kgZ#yGWVsR7j)3rKphJ#Z{`1WJwG+sxWVhv^+Yb z<}^NnY8g};*~PP{R#DovX~M+Zz_o!ErOg=0YZ=Srqc#{3M$RbHykXiEWk$y4xi}lO z87fwkndNbtGfHzko?H&6(ctvEUILvkJ*sPkYy#6!F@ZUm3VELOCRw?G92gd?S80Vw@G3W}$yJSOPq10)H`Cj6Z953GxK*#UQcbRD zjAN8Fp<0G8sr`5~$OI^men?|*s)e-43w&EW;Pz_rw8nr;D*#23m@!J|HqY_WpJwo8$86{Uw<$}R`aY{Ya>}mp1z$34Q zun`HqqfXqeCYLo9FB^KvBGDm=@GI-YuBs-FY%Jze9OzkBPi*?m(7x5!)#T-C01_A` z*H)7!Ph~m&jF3?piaPVbgHaqTqQ813kH^ia2~&@-n5%T=?Ms9PUE-K%iUT{9@c2! zm4-+c)NxJl2ONKdOr8z>QDYR74xYk5lZHH4Z^%Q{(wG_Uch%8I=r^4STGe!ud_T}kMh=P*zzOr zQ1PB8Pt=k0wrVnD6v_tzf3oQit91jRnlv1oZt#>N6XLPp!;U{Kt6~Y}tO>9veS4hU z7RM@~MQPb%vD^LV9e(stKPvp_4Sw`VKYF7deaeqM;zu9wqfghO6?ci3hehx3mwdA_ z<+9D+8ORW(W%GB{GAhdaT)`N@Dj;JC4IABeW0Q@I^?Q_7y@(Z@$=}OpxBfoqurzjI zmY(TJJ7ql?LuhGQVq?pYu_{7K7=lCbRO@fn-oGG&-`~@)iDVu*fuFQ92(q?6JR3GD?QT9o|Gce64j|)A=EdE(J zgB-hZ)v?D!&s2+LcnH78L^tbLQLAS346GA$Wr3v?%h;f3X1c6ejDIf0Kd(g6wOsxM zRavBsWeSz7Mm5msOD6wfN||eb9--rmgn!9a7L>E+y`n_0i_=Q9u`>C$Q~W#167TqH%u1*g%Roi`UGPb$?oe=8|6YoJUuko* z_zzSiBCA+T!#T?jaW1Bfs#qfPA1QOuB*@Uf`f-Z?#G{eFsw^^`eqQU=?8OxSDSJsB zm|^js0kY^!S!Be|*{jNIEM+QX{)^2xADM%#nJTx>zqI+Ua13U%N?hsvjL?&tAUQJR?3iJf3f*rG1U?7-{MMVBGH3?^_y3k4$|J! zqdd<4u5^V~qo+VmI<1#{gO4Br z{ug12kH7>xVb=@seISk=DP|)?mupLjR*F4?hmdGP ztfDM(pNHrpa_Th29OT<#F4b#Ki3q~DoQ5VH;E8!ClP8P812xg^jH#83?2P6W0%0>3rj<&>bK#|$$BJvFenYlUP*=$Nr^{*6;`NA1CQ zEg&}nCAF}-!eV(clXS13a4$~##gP!)wNu0q*rE%+u!=1MGTAB5Oz{fCYlJwembrKm zb>e7Qn0MWN3{tk}#&4~i37H5dum|OnT;z_7h**hI@V5$qEsm8?uJ4bdgfho_T;Pz> zeFwqX73YnNi9_A-J<2|`_S`d((Kh#aloH1i(B?disH!*tznk+kj;i8B8K==x6}>V} zqoyiW%Qy{~syGS1n$pVjEFL3!=pBL_%JL0WN~}R?Tp~-zJYnStBrk^>9;xaWo=dxEXN`90>ez4BC|EroLd_x;#8TLcZbVqNZI0a{MKBtRwgF9 z!W%B@P@Z>(!WmNh%%J%C5OLB(-LVg0-tF*bA#RHeQo?oE*_5d3@Jl;!lCEbovs*1? zyYU(a$5PWB17sg5?WeFKxdc-g&btW=uZOZx2TYuUQgrkI1h&|SUvLptcM~DS@?^PW zJYVbgd8d=(MN!`27{uot7qI1C*WWC43_3dG3oS7u6BGG{(dVMT^V6`D+Y*#Juc2Hl zPb#R*3PR6M=Ob>5ty01zIw=zq)yDFqiNr5J==teF#BFhrlyJo_rbL~e{E2D##9>rF zF_AH(Aw}WzUfYRFP!}#rBe2D#_@%iBujcY(+Ek7pm$;5dc#cpd(ujlPI3gnx6B&V_ zSrmAV(4^dGP%hU{E|w=1)J{g_o+or9Y>}5DE|r(b#6-QZJgFl20z%IdMZ|4Uk`k`C zL5UDgB$|7Ij3EtW3Mapy6dd_rT_CW9iCI*~%k+w}jv0z&nn+K_(_M=MjG+%01$5lHxZ9#cv4_Cr#A& zTM>H1--fs?ZkG}+@pn+7j`%s9?gn+bG?P)J=}rneGj6O8>F)P9Ays0Zg#^nCLe;0D9p0qc1fJf_7Qs!w##-a7?G7;XqcTl-U z?>nXZyMprX4v{BSWc+&&dhEUzaa+7kO1ShqBNLO=lO_^>KSGb)4_gjA4Xt{kKmWa z1#J%lbv{axu{>Gc*fW!7myb!j=N&x9M<17o$s~Cke*)zm$DfqqF9gLu6(UZWsCl18 z=yCiR#BK3eDdBSbIZD)VOlR*+IHseG=~7JQk`14yup_w;$mc^mx=CJ1pi@rq1r&kj zFCwtTm+(tGH>&t$!ieRm3DYI}D-!gp4yZ%+*JL7`>=#k)k^Pbs|9VjT^>`+Eo0Vf_y>5zhJ_QSPz+ zCn^5tp!i=x#7Pr1_OA#%*8hgME&eVgT-N_Vi8|JMo3q~RQo?i{LCqlB{z;)bWux0W z(Bfang$MqPz!v|(Z*9u<>-?7_V|i-ORMbzgnpx{TcK;{!wak?I9M{Z{iHWX(;WJU- zJ#J?qZi{__a`7uw{Oy!TjO0wVMeu+d{>L5AX z?<*4xxZe*29{2l8xdVc72R4+8w7` z15qjAiXTUbI-c7)%j39BS*lG!Q_xK|k)q=%?2z}&h9rPE0Xg9LLk zNj8=zBd4OX`CN{7oH%0D#@xeh(J$4WBh|L2*zy!hq*!lC3{XxS@8fZgp`eM4NG6xT z^01vqH12Fwy5vjvskSXGme@oJ@)DOWPhqQ3jK<~V&8S|AhNsb?RwV+r;lX83yy=7F3FJH79>5MA|c-Z`ao7rT-Gw)y~305s@_^zzxa>o8ObA23vx zP?J9DQI1&~B}%g)L$Y1$VG_T<7Z16DU%SHRTh`gsvYG(lU+Ci>@0hoVUb9baV-2N? z?I56wd>~TafIauRg>NRgKb%0fI$>YzV^cSlu9X+=r*f{W)Wx14kdzM+a_dtzX_A$6 z#W>u`pbTlb#MeTD1*S?qhn(B)&Fu|hb+O9{F73lb0oQ<4I_vN$ZQdv4xd>1%^-)7U zQJ|XgxGH$<#8*QX{lhtFC`_$Ur>{47hvaqZ4GNRq5npeJ>!r!=Wf)&wbJquDNK3}o z;!Z%D=)7bKpHr1CRwaO}4?vGIc~VHiVv)(OAJ8Je zQ6G?u!(+t#&?aR14>7JpSUDdnWKyf0fB4R5KB?6N2%q`*Crq*xs}!f}Hd?IIV7l1V zgrxgO#{mh$dC*NF8Rh-gw;Ihb$O_?Gu@OM^ z-;z<|nvTk5=v{1#6qrz;v9&4IPv2JK<6n8XR9MKiMTNAp_6_S^db#q#qFbJ0%bn=H zYaU_=C%U9(H|uqxk%wMmYn|u;$0@AeiSD=c764-jPTwk-s!@%4RYC>wV4Z$4{q$JTYj zoBKC!*wHsUJUF~#OW*l@!+l*n7p?3*K6P=IxEc}zE!APMlSJo`Y4m-exCTkOxjYMh zT0mTj1e>X}i_wg{s4a;-#3j};41CS6Yu2bFmM&KJi0cS#As(dk<*l?2w+6*75mV--Yjoa&H0VtH9~8c2yZ`_I literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/.doctrees/index.doctree b/base_geoengine/doc/build/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f7645b810af06980302679b271116f1a7145fb68 GIT binary patch literal 7135 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 P=pA^;^ojVH)=K{agYG8m literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/.doctrees/postgisify.doctree b/base_geoengine/doc/build/.doctrees/postgisify.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ce247b2f7171b0485b6a0beac4a5ef54e8f9bb5b GIT binary patch literal 4161 zcmds4`F9*g5mw}^q+MIG?AT7g7MYwV!O|unBteGYU=$N1uaig}9AFrFXL`2>%}h^C z_efe`NDKrl!hPTOec$)ZKgQRyvny$zdEvd}@k4%)-t0_wSJhWvRe$yLxF0A#H({g~ z6BP*Eus>swm zu*DjI@Kwg`ZaUOrM|o~kM=6siBRp+*W@vil8a8SD3j<9v1s#?X%-MBrfhP+?=N5*} z&1yE~%P}0Mvuuv zn&nC81KI|?>1C|Jjmg4xZUF3!1v&FSiVasY=_452&ZxCC~0&W}co zj7Ny~6@cz^K@0QpL`j)PpNle!@_Knp-XKrPIaVtVp{7I#cg@S2TzRuAZ*k?VuDspN zB|MRp{kuoauZwNa_n!aF<|~2by#>7rPD*S4bl&E9d-O=;ns+mv$_CwssO~T50UOo7 zk{c+P+@>jVd=5%0$^+m!8}x=ENyF8DQMN=*s?{DI4Ud4QaR|x#tA!Rg;qVHyw{vi17{yM zVJAo1h*TGaj%Hwc%HX;}?+8$(7j|KjWofpqR+^0g92Wt{g%{cjdK95QR?y=%#uxl_ z1h~?N(o%A*pml5JK?Je3yt;gD-MQ20WGZ&fFJHW{y#Dx;-nomb>_ThpOk@A|5z3v} z16)ZkHZPau)wpzM0NxV-@A=!MHv_Fp1wA<+%32wnz<JJ^wZ(x}|cU23yqBg<_SYVutQSltgz zNkL7*rH+l99U5q`^1AOrat%G)Rcq3v(7KhX3~hwo*+P|2|k$g%0YzM$G&irMtQ zSl@x9AjM|GBnUGIEe}erD~zVpC1O)r7<)@<%JwJ=ajWy@P$2^-i1?VQjyvi1jHYzmfqcBGa7m;_3V`mL8$3HNTgBL#=xC| z)$k?j(RIAyrMGt3{LhV#Wy?=Luh$C zz(`Qaw=xyO_5N%g@<( z7|<_ZUtu)FfKz4fmpklazxG5V$_4=7jPwR$)~~?u3h0u*nttulZ`g^F%TNL$D~Dr| z*o*}9ThRX?CQTGr|Hbd{V!DiZ*cX4_%G>PtXlL)w!+%&A>rZljEa*>iRvy#f+}YY{HTRgW^95`e)u={0};~ B?%DtV literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/.doctrees/prerequisite.doctree b/base_geoengine/doc/build/.doctrees/prerequisite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9fadce8280492a22ef28cc6fd1c6b1d8d4d98d4f GIT binary patch literal 5141 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 C=k9y} literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_images/core_architecture.jpg b/base_geoengine/doc/build/_images/core_architecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..326593defeb882307dbbc49532f17c86a7e24b42 GIT binary patch literal 114343 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
+i;2U@GGDq_zL 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 aM+p$ZfB$N?`X5Vnj>P}}v;+G-^uGWw%%I!= literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_sources/_templates/prerequisite.txt b/base_geoengine/doc/build/_sources/_templates/prerequisite.txt new file mode 100644 index 000000000..96775bb7a --- /dev/null +++ b/base_geoengine/doc/build/_sources/_templates/prerequisite.txt @@ -0,0 +1,3 @@ +================= +Prerequisite +================= diff --git a/base_geoengine/doc/build/_sources/api_doc.txt b/base_geoengine/doc/build/_sources/api_doc.txt new file mode 100644 index 000000000..56c5af9a2 --- /dev/null +++ b/base_geoengine/doc/build/_sources/api_doc.txt @@ -0,0 +1,63 @@ +====== +API +====== + +*********** +GeoColumns +*********** +.. automodule:: base_geoengine.geo_field + :members: + +.. automodule:: base_geoengine.geo_point + :members: + +.. automodule:: base_geoengine.geo_line + :members: + +.. automodule:: base_geoengine.geo_multiline + :members: + +.. automodule:: base_geoengine.geo_polygon + :members: + +.. automodule:: base_geoengine.geo_multipolygon + :members: + +**************** +View Management +**************** + +.. automodule:: base_geoengine.geo_view + :members: + +.. automodule:: base_geoengine.geo_view.geo_raster_layer + :members: + +.. automodule:: base_geoengine.geo_view.geo_vector_layer + :members: + +.. automodule:: base_geoengine.geo_view.ir_view + :members: + +************** +GEO ORM MODEL +************** +.. autoclass:: base_geoengine.geo_model.GeoModel + :members: + +****************** +GEO ORM OPERATORS +****************** + +.. automodule:: base_geoengine.geo_operators + :members: + +.. autoclass:: base_geoengine.geo_operators.GeoOperator + :members: + +*********** +GEO helper +*********** + +.. automodule:: base_geoengine.geo_helper.geo_convertion_helper + :members: diff --git a/base_geoengine/doc/build/_sources/index.txt b/base_geoengine/doc/build/_sources/index.txt new file mode 100644 index 000000000..5d7683b6f --- /dev/null +++ b/base_geoengine/doc/build/_sources/index.txt @@ -0,0 +1,31 @@ +.. OpenERP GeoEngine documentation master file, created by + sphinx-quickstart on Mon Mar 5 09:15:25 2012. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to OpenERP GeoEngine's documentation! +============================================= + +Contents: + +.. toctree:: + :maxdepth: 2 + + what_is_geoengine + prerequisite + installation + postgisify + api_doc + + How to use GeoEngine + Modules presentations + API presentation + Manage your layer from client + Create a geocolumn from client + + +Indices and tables +================== +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/base_geoengine/doc/build/_sources/installation.txt b/base_geoengine/doc/build/_sources/installation.txt new file mode 100644 index 000000000..d96eea00b --- /dev/null +++ b/base_geoengine/doc/build/_sources/installation.txt @@ -0,0 +1,39 @@ +================= +Installation +================= + + +*************************** +PostGIS database template +*************************** + +In order to create databases from the OpenERP client, you have to create a PostGis database template. +Under windows, this template is already available in installer. + +On other *NIX, system you simply have to launch the create_postgis_template.sh script available in the base_geoengine module in the scripts folder. +This should be done by a PostgreSQL superuser. + +In order to test the success:: + + psql -l + template_postgis | owner | UTF8 | en_US.UTF-8 | en_US.UTF-8 | + + +If you want to install GeoEngine on an exisiting database, please refer to the Postgisify section. + +*************** +OpenERP +*************** + +Add the template as an argument to OpenERP server:: + + --db-template=template_postgis + +or in config file:: + + db_template = template_postgis + + +Do not forget to add the GeoEngine modules to your addons path. + +Then install (eventually update module list) the base GeoEngine module form the OpenERP client. diff --git a/base_geoengine/doc/build/_sources/postgisify.txt b/base_geoengine/doc/build/_sources/postgisify.txt new file mode 100644 index 000000000..a54afe159 --- /dev/null +++ b/base_geoengine/doc/build/_sources/postgisify.txt @@ -0,0 +1,13 @@ +********************************* +Postgisify an exisiting database +********************************* + +If you want to install the GeoEngine on an existing database, you have to run the sql commands available in the base_geoengine module under the postgis_sql folder using a PostgreSQL super user:: + + psql -U superuser my database -f postgis.sql + psql -U superuser my database -f spatial_ref_sys.sql + +In order to test if the installation is sucessfull log into you database and:: + + SELECT * from GEOMETRY_COLUMNS; + SELECT * from spatial_ref_sys; diff --git a/base_geoengine/doc/build/_sources/prerequisite.txt b/base_geoengine/doc/build/_sources/prerequisite.txt new file mode 100644 index 000000000..8001d0ad2 --- /dev/null +++ b/base_geoengine/doc/build/_sources/prerequisite.txt @@ -0,0 +1,30 @@ +================= +Prerequisites +================= +*************** +Python +*************** +geojson: + +:: + + pip install geojson + +Shapely: + +:: + + pip install Shapely==1.2.13 + +For Mac user: do not forget the following directive: + +:: + + ARCHFLAGS="-arch i386 -arch x86_64" + + +*************** +PostGIS 1.5 +*************** + +Please refer to `PostGIS installation directive `_ or to your OS package system. diff --git a/base_geoengine/doc/build/_sources/what_is_geoengine.txt b/base_geoengine/doc/build/_sources/what_is_geoengine.txt new file mode 100644 index 000000000..cb64b8cbc --- /dev/null +++ b/base_geoengine/doc/build/_sources/what_is_geoengine.txt @@ -0,0 +1,16 @@ +=================== +What is GeoEngine ? +=================== + +GeoEngine is an OpenERP module that adds spatial/GIS capabilites to OpenERP. It will allow you to : + +* Visualize and query your business information on map +* Perform GeoBI and spatial query +* Configure your spatial layers and spatial datasources +* Extend OpenERP models with spatial columns + +GeoEngine relies on `OpenLayers `_ and `PostgGIS `_ technologies. + +Postgis is used to store spatial information in databases. OpenLayer is used to represent spatial data in other words to show maps. The GeoEngine module acts as a data provider and as an OpenLayers configurator. It also provides a complete extension to OpenERP ORM. + +.. image:: _static/_images/core_architecture.jpg diff --git a/base_geoengine/doc/build/_static/_images/core_architecture.jpg b/base_geoengine/doc/build/_static/_images/core_architecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..326593defeb882307dbbc49532f17c86a7e24b42 GIT binary patch literal 114343 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

rfkFL#zrjKrvHG-qg}uIeDg> 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

+i;2U@GGDq_zL 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 aM+p$ZfB$N?`X5Vnj>P}}v;+G-^uGWw%%I!= literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/ajax-loader.gif b/base_geoengine/doc/build/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/basic.css b/base_geoengine/doc/build/_static/basic.css new file mode 100644 index 000000000..9d462fd0b --- /dev/null +++ b/base_geoengine/doc/build/_static/basic.css @@ -0,0 +1,560 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar input[type="text"] { + width: 170px; +} + +div.sphinxsidebar input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, +table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, +.figure.align-left, +object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, +.figure.align-right, +object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, +.figure.align-center, +object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, +table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, +table.field-list th { + border: 0 !important; +} + +table.footnote td, +table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, +dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, +.highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, +.menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, +acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, +a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, +h2 tt, +h3 tt, +h4 tt, +h5 tt, +h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/base_geoengine/doc/build/_static/comment-bright.png b/base_geoengine/doc/build/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/comment.png b/base_geoengine/doc/build/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjf= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore( + span, + node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + } + } else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function () { + highlight(this); + }); + } + } + return this.each(function () { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + init: function () { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * I18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: function (n) { + return n == 1 ? 0 : 1; + }, + LOCALE: "unknown", + + // Gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: function (string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === "undefined") return string; + return typeof translated === "string" ? translated : translated[0]; + }, + + ngettext: function (singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === "undefined") return n == 1 ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations: function (catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function("n", "return +(" + catalog.plural_expr + ")"); + this.LOCALE = catalog.locale; + }, + + /** + * Add context elements like header anchor links + */ + addContextElements: function () { + $("div[id] > :header:first").each(function () { + $('\u00B6') + .attr("href", "#" + this.id) + .attr("title", _("Permalink to this headline")) + .appendTo(this); + }); + $("dt[id]").each(function () { + $('\u00B6') + .attr("href", "#" + this.id) + .attr("title", _("Permalink to this definition")) + .appendTo(this); + }); + }, + + /** + * Workaround a firefox stupidity + */ + fixFirefoxAnchorBug: function () { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function () { + document.location.href = String(document.location.href); + }, 10); + }, + + /** + * Highlight the search words provided in the url in the text + */ + highlightSearchWords: function () { + var params = $.getQueryParameters(); + var terms = params.highlight ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $("div.body"); + window.setTimeout(function () { + $.each(terms, function () { + body.highlightText(this.toLowerCase(), "highlighted"); + }); + }, 10); + $( + '" + ).appendTo($("#searchbox")); + } + }, + + /** + * Init the domain index toggle buttons + */ + initIndexTable: function () { + var togglers = $("img.toggler") + .click(function () { + var src = $(this).attr("src"); + var idnum = $(this).attr("id").substr(7); + $("tr.cg-" + idnum).toggle(); + if (src.substr(-9) == "minus.png") + $(this).attr("src", src.substr(0, src.length - 9) + "plus.png"); + else $(this).attr("src", src.substr(0, src.length - 8) + "minus.png"); + }) + .css("display", ""); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * Helper function to hide the search marks again + */ + hideSearchWords: function () { + $("#searchbox .highlight-link").fadeOut(300); + $("span.highlighted").removeClass("highlighted"); + }, + + /** + * Make the url absolute + */ + makeURL: function (relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + "/" + relativeURL; + }, + + /** + * Get the current relative url + */ + getCurrentURL: function () { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function () { + if (this == "..") parts.pop(); + }); + var url = parts.join("/"); + return path.substring(url.lastIndexOf("/") + 1, path.length - 1); + }, +}; + +// Quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function () { + Documentation.init(); +}); diff --git a/base_geoengine/doc/build/_static/down-pressed.png b/base_geoengine/doc/build/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/down.png b/base_geoengine/doc/build/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/file.png b/base_geoengine/doc/build/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/jquery.js b/base_geoengine/doc/build/_static/jquery.js new file mode 100644 index 000000000..360e036b2 --- /dev/null +++ b/base_geoengine/doc/build/_static/jquery.js @@ -0,0 +1,4007 @@ +/* ! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function (A, w) { + function ma() { + if (!c.isReady) { + try { + s.documentElement.doScroll("left"); + } catch (a) { + setTimeout(ma, 1); + return; + } + c.ready(); + } + } + function Qa(a, b) { + b.src + ? c.ajax({url: b.src, async: false, dataType: "script"}) + : c.globalEval(b.text || b.textContent || b.innerHTML || ""); + b.parentNode && b.parentNode.removeChild(b); + } + function X(a, b, d, f, e, j) { + var i = a.length; + if (typeof b === "object") { + for (var o in b) X(a, o, b[o], f, e, d); + return a; + } + if (d !== w) { + f = !j && f && c.isFunction(d); + for (o = 0; o < i; o++) e(a[o], b, f ? d.call(a[o], o, e(a[o], b)) : d, j); + return a; + } + return i ? e(a[0], b) : w; + } + function J() { + return new Date().getTime(); + } + function Y() { + return false; + } + function Z() { + return true; + } + function na(a, b, d) { + d[0].type = a; + return c.event.handle.apply(b, d); + } + function oa(a) { + var b, + d = [], + f = [], + e = arguments, + j, + i, + o, + k, + n, + r; + i = c.data(this, "events"); + if ( + !(a.liveFired === this || !i || !i.live || (a.button && a.type === "click")) + ) { + a.liveFired = this; + var u = i.live.slice(0); + for (k = 0; k < u.length; k++) { + i = u[k]; + i.origType.replace(O, "") === a.type + ? f.push(i.selector) + : u.splice(k--, 1); + } + j = c(a.target).closest(f, a.currentTarget); + n = 0; + for (r = j.length; n < r; n++) + for (k = 0; k < u.length; k++) { + i = u[k]; + if (j[n].selector === i.selector) { + o = j[n].elem; + f = null; + if (i.preType === "mouseenter" || i.preType === "mouseleave") + f = c(a.relatedTarget).closest(i.selector)[0]; + if (!f || f !== o) d.push({elem: o, handleObj: i}); + } + } + n = 0; + for (r = d.length; n < r; n++) { + j = d[n]; + a.currentTarget = j.elem; + a.data = j.handleObj.data; + a.handleObj = j.handleObj; + if (j.handleObj.origHandler.apply(j.elem, e) === false) { + b = false; + break; + } + } + return b; + } + } + function pa(a, b) { + return ( + "live." + + (a && a !== "*" ? a + "." : "") + + b.replace(/\./g, "`").replace(/ /g, "&") + ); + } + function qa(a) { + return !a || !a.parentNode || a.parentNode.nodeType === 11; + } + function ra(a, b) { + var d = 0; + b.each(function () { + if (this.nodeName === (a[d] && a[d].nodeName)) { + var f = c.data(a[d++]), + e = c.data(this, f); + if ((f = f && f.events)) { + delete e.handle; + e.events = {}; + for (var j in f) + for (var i in f[j]) c.event.add(this, j, f[j][i], f[j][i].data); + } + } + }); + } + function sa(a, b, d) { + var f, e, j; + b = b && b[0] ? b[0].ownerDocument || b[0] : s; + if ( + a.length === 1 && + typeof a[0] === "string" && + a[0].length < 512 && + b === s && + !ta.test(a[0]) && + (c.support.checkClone || !ua.test(a[0])) + ) { + e = true; + if ((j = c.fragments[a[0]])) if (j !== 1) f = j; + } + if (!f) { + f = b.createDocumentFragment(); + c.clean(a, b, f, d); + } + if (e) c.fragments[a[0]] = j ? f : 1; + return {fragment: f, cacheable: e}; + } + function K(a, b) { + var d = {}; + c.each(va.concat.apply([], va.slice(0, b)), function () { + d[this] = a; + }); + return d; + } + function wa(a) { + return "scrollTo" in a && a.document + ? a + : a.nodeType === 9 + ? a.defaultView || a.parentWindow + : false; + } + var c = function (a, b) { + return new c.fn.init(a, b); + }, + Ra = A.jQuery, + Sa = A.$, + s = A.document, + T, + Ta = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, + Ua = /^.[^:#\[\.,]*$/, + Va = /\S/, + Wa = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, + Xa = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + P = navigator.userAgent, + xa = false, + Q = [], + L, + $ = Object.prototype.toString, + aa = Object.prototype.hasOwnProperty, + ba = Array.prototype.push, + R = Array.prototype.slice, + ya = Array.prototype.indexOf; + c.fn = c.prototype = { + init: function (a, b) { + var d, f; + if (!a) return this; + if (a.nodeType) { + this.context = this[0] = a; + this.length = 1; + return this; + } + if (a === "body" && !b) { + this.context = s; + this[0] = s.body; + this.selector = "body"; + this.length = 1; + return this; + } + if (typeof a === "string") + if ((d = Ta.exec(a)) && (d[1] || !b)) + if (d[1]) { + f = b ? b.ownerDocument || b : s; + if ((a = Xa.exec(a))) + if (c.isPlainObject(b)) { + a = [s.createElement(a[1])]; + c.fn.attr.call(a, b, true); + } else a = [f.createElement(a[1])]; + else { + a = sa([d[1]], [f]); + a = (a.cacheable ? a.fragment.cloneNode(true) : a.fragment) + .childNodes; + } + return c.merge(this, a); + } else { + if ((b = s.getElementById(d[2]))) { + if (b.id !== d[2]) return T.find(a); + this.length = 1; + this[0] = b; + } + this.context = s; + this.selector = a; + return this; + } + else if (!b && /^\w+$/.test(a)) { + this.selector = a; + this.context = s; + a = s.getElementsByTagName(a); + return c.merge(this, a); + } else return !b || b.jquery ? (b || T).find(a) : c(b).find(a); + else if (c.isFunction(a)) return T.ready(a); + if (a.selector !== w) { + this.selector = a.selector; + this.context = a.context; + } + return c.makeArray(a, this); + }, + selector: "", + jquery: "1.4.2", + length: 0, + size: function () { + return this.length; + }, + toArray: function () { + return R.call(this, 0); + }, + get: function (a) { + return a == null ? this.toArray() : a < 0 ? this.slice(a)[0] : this[a]; + }, + pushStack: function (a, b, d) { + var f = c(); + c.isArray(a) ? ba.apply(f, a) : c.merge(f, a); + f.prevObject = this; + f.context = this.context; + if (b === "find") + f.selector = this.selector + (this.selector ? " " : "") + d; + else if (b) f.selector = this.selector + "." + b + "(" + d + ")"; + return f; + }, + each: function (a, b) { + return c.each(this, a, b); + }, + ready: function (a) { + c.bindReady(); + if (c.isReady) a.call(s, c); + else Q && Q.push(a); + return this; + }, + eq: function (a) { + return a === -1 ? this.slice(a) : this.slice(a, Number(a) + 1); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + slice: function () { + return this.pushStack( + R.apply(this, arguments), + "slice", + R.call(arguments).join(",") + ); + }, + map: function (a) { + return this.pushStack( + c.map(this, function (b, d) { + return a.call(b, d, b); + }) + ); + }, + end: function () { + return this.prevObject || c(null); + }, + push: ba, + sort: [].sort, + splice: [].splice, + }; + c.fn.init.prototype = c.fn; + c.extend = c.fn.extend = function () { + var a = arguments[0] || {}, + b = 1, + d = arguments.length, + f = false, + e, + j, + i, + o; + if (typeof a === "boolean") { + f = a; + a = arguments[1] || {}; + b = 2; + } + if (typeof a !== "object" && !c.isFunction(a)) a = {}; + if (d === b) { + a = this; + --b; + } + for (; b < d; b++) + if ((e = arguments[b]) != null) + for (j in e) { + i = a[j]; + o = e[j]; + if (a !== o) + if (f && o && (c.isPlainObject(o) || c.isArray(o))) { + i = + i && (c.isPlainObject(i) || c.isArray(i)) + ? i + : c.isArray(o) + ? [] + : {}; + a[j] = c.extend(f, i, o); + } else if (o !== w) a[j] = o; + } + return a; + }; + c.extend({ + noConflict: function (a) { + A.$ = Sa; + if (a) A.jQuery = Ra; + return c; + }, + isReady: false, + ready: function () { + if (!c.isReady) { + if (!s.body) return setTimeout(c.ready, 13); + c.isReady = true; + if (Q) { + for (var a, b = 0; (a = Q[b++]); ) a.call(s, c); + Q = null; + } + c.fn.triggerHandler && c(s).triggerHandler("ready"); + } + }, + bindReady: function () { + if (!xa) { + xa = true; + if (s.readyState === "complete") return c.ready(); + if (s.addEventListener) { + s.addEventListener("DOMContentLoaded", L, false); + A.addEventListener("load", c.ready, false); + } else if (s.attachEvent) { + s.attachEvent("onreadystatechange", L); + A.attachEvent("onload", c.ready); + var a = false; + try { + a = A.frameElement == null; + } catch (b) {} + s.documentElement.doScroll && a && ma(); + } + } + }, + isFunction: function (a) { + return $.call(a) === "[object Function]"; + }, + isArray: function (a) { + return $.call(a) === "[object Array]"; + }, + isPlainObject: function (a) { + if (!a || $.call(a) !== "[object Object]" || a.nodeType || a.setInterval) + return false; + if ( + a.constructor && + !aa.call(a, "constructor") && + !aa.call(a.constructor.prototype, "isPrototypeOf") + ) + return false; + var b; + for (b in a); + return b === w || aa.call(a, b); + }, + isEmptyObject: function (a) { + for (var b in a) return false; + return true; + }, + error: function (a) { + throw a; + }, + parseJSON: function (a) { + if (typeof a !== "string" || !a) return null; + a = c.trim(a); + if ( + /^[\],:{}\s]*$/.test( + a + .replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") + .replace( + /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + "]" + ) + .replace(/(?:^|:|,)(?:\s*\[)+/g, "") + ) + ) + return A.JSON && A.JSON.parse + ? A.JSON.parse(a) + : new Function("return " + a)(); + c.error("Invalid JSON: " + a); + }, + noop: function () {}, + globalEval: function (a) { + if (a && Va.test(a)) { + var b = s.getElementsByTagName("head")[0] || s.documentElement, + d = s.createElement("script"); + d.type = "text/javascript"; + if (c.support.scriptEval) d.appendChild(s.createTextNode(a)); + else d.text = a; + b.insertBefore(d, b.firstChild); + b.removeChild(d); + } + }, + nodeName: function (a, b) { + return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase(); + }, + each: function (a, b, d) { + var f, + e = 0, + j = a.length, + i = j === w || c.isFunction(a); + if (d) + if (i) + for (f in a) { + if (b.apply(a[f], d) === false) break; + } + else + for (; e < j; ) { + if (b.apply(a[e++], d) === false) break; + } + else if (i) + for (f in a) { + if (b.call(a[f], f, a[f]) === false) break; + } + else for (d = a[0]; e < j && b.call(d, e, d) !== false; d = a[++e]); + return a; + }, + trim: function (a) { + return (a || "").replace(Wa, ""); + }, + makeArray: function (a, b) { + b = b || []; + if (a != null) + a.length == null || + typeof a === "string" || + c.isFunction(a) || + (typeof a !== "function" && a.setInterval) + ? ba.call(b, a) + : c.merge(b, a); + return b; + }, + inArray: function (a, b) { + if (b.indexOf) return b.indexOf(a); + for (var d = 0, f = b.length; d < f; d++) if (b[d] === a) return d; + return -1; + }, + merge: function (a, b) { + var d = a.length, + f = 0; + if (typeof b.length === "number") + for (var e = b.length; f < e; f++) a[d++] = b[f]; + else for (; b[f] !== w; ) a[d++] = b[f++]; + a.length = d; + return a; + }, + grep: function (a, b, d) { + for (var f = [], e = 0, j = a.length; e < j; e++) + !d !== !b(a[e], e) && f.push(a[e]); + return f; + }, + map: function (a, b, d) { + for (var f = [], e, j = 0, i = a.length; j < i; j++) { + e = b(a[j], j, d); + if (e != null) f[f.length] = e; + } + return f.concat.apply([], f); + }, + guid: 1, + proxy: function (a, b, d) { + if (arguments.length === 2) + if (typeof b === "string") { + d = a; + a = d[b]; + b = w; + } else if (b && !c.isFunction(b)) { + d = b; + b = w; + } + if (!b && a) + b = function () { + return a.apply(d || this, arguments); + }; + if (a) b.guid = a.guid = a.guid || b.guid || c.guid++; + return b; + }, + uaMatch: function (a) { + a = a.toLowerCase(); + a = + /(webkit)[ \/]([\w.]+)/.exec(a) || + /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a) || + /(msie) ([\w.]+)/.exec(a) || + (!/compatible/.test(a) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)) || + []; + return {browser: a[1] || "", version: a[2] || "0"}; + }, + browser: {}, + }); + P = c.uaMatch(P); + if (P.browser) { + c.browser[P.browser] = true; + c.browser.version = P.version; + } + if (c.browser.webkit) c.browser.safari = true; + if (ya) + c.inArray = function (a, b) { + return ya.call(b, a); + }; + T = c(s); + if (s.addEventListener) + L = function () { + s.removeEventListener("DOMContentLoaded", L, false); + c.ready(); + }; + else if (s.attachEvent) + L = function () { + if (s.readyState === "complete") { + s.detachEvent("onreadystatechange", L); + c.ready(); + } + }; + (function () { + c.support = {}; + var a = s.documentElement, + b = s.createElement("script"), + d = s.createElement("div"), + f = "script" + J(); + d.style.display = "none"; + d.innerHTML = + "
a"; + var e = d.getElementsByTagName("*"), + j = d.getElementsByTagName("a")[0]; + if (!(!e || !e.length || !j)) { + c.support = { + leadingWhitespace: d.firstChild.nodeType === 3, + tbody: !d.getElementsByTagName("tbody").length, + htmlSerialize: Boolean(d.getElementsByTagName("link").length), + style: /red/.test(j.getAttribute("style")), + hrefNormalized: j.getAttribute("href") === "/a", + opacity: /^0.55$/.test(j.style.opacity), + cssFloat: Boolean(j.style.cssFloat), + checkOn: d.getElementsByTagName("input")[0].value === "on", + optSelected: s + .createElement("select") + .appendChild(s.createElement("option")).selected, + parentNode: + d.removeChild(d.appendChild(s.createElement("div"))).parentNode === + null, + deleteExpando: true, + checkClone: false, + scriptEval: false, + noCloneEvent: true, + boxModel: null, + }; + b.type = "text/javascript"; + try { + b.appendChild(s.createTextNode("window." + f + "=1;")); + } catch (i) {} + a.insertBefore(b, a.firstChild); + if (A[f]) { + c.support.scriptEval = true; + delete A[f]; + } + try { + delete b.test; + } catch (o) { + c.support.deleteExpando = false; + } + a.removeChild(b); + if (d.attachEvent && d.fireEvent) { + d.attachEvent("onclick", function k() { + c.support.noCloneEvent = false; + d.detachEvent("onclick", k); + }); + d.cloneNode(true).fireEvent("onclick"); + } + d = s.createElement("div"); + d.innerHTML = ""; + a = s.createDocumentFragment(); + a.appendChild(d.firstChild); + c.support.checkClone = a.cloneNode(true).cloneNode(true).lastChild.checked; + c(function () { + var k = s.createElement("div"); + k.style.width = k.style.paddingLeft = "1px"; + s.body.appendChild(k); + c.boxModel = c.support.boxModel = k.offsetWidth === 2; + s.body.removeChild(k).style.display = "none"; + }); + a = function (k) { + var n = s.createElement("div"); + k = "on" + k; + var r = k in n; + if (!r) { + n.setAttribute(k, "return;"); + r = typeof n[k] === "function"; + } + return r; + }; + c.support.submitBubbles = a("submit"); + c.support.changeBubbles = a("change"); + a = b = d = e = j = null; + } + })(); + c.props = { + for: "htmlFor", + class: "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder", + }; + var G = "jQuery" + J(), + Ya = 0, + za = {}; + c.extend({ + cache: {}, + expando: G, + noData: {embed: true, object: true, applet: true}, + data: function (a, b, d) { + if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) { + a = a == A ? za : a; + var f = a[G], + e = c.cache; + if (!f && typeof b === "string" && d === w) return null; + f || (f = ++Ya); + if (typeof b === "object") { + a[G] = f; + e[f] = c.extend(true, {}, b); + } else if (!e[f]) { + a[G] = f; + e[f] = {}; + } + a = e[f]; + if (d !== w) a[b] = d; + return typeof b === "string" ? a[b] : a; + } + }, + removeData: function (a, b) { + if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) { + a = a == A ? za : a; + var d = a[G], + f = c.cache, + e = f[d]; + if (b) { + if (e) { + delete e[b]; + c.isEmptyObject(e) && c.removeData(a); + } + } else { + if (c.support.deleteExpando) delete a[c.expando]; + else a.removeAttribute && a.removeAttribute(c.expando); + delete f[d]; + } + } + }, + }); + c.fn.extend({ + data: function (a, b) { + if (typeof a === "undefined" && this.length) return c.data(this[0]); + else if (typeof a === "object") + return this.each(function () { + c.data(this, a); + }); + var d = a.split("."); + d[1] = d[1] ? "." + d[1] : ""; + if (b === w) { + var f = this.triggerHandler("getData" + d[1] + "!", [d[0]]); + if (f === w && this.length) f = c.data(this[0], a); + return f === w && d[1] ? this.data(d[0]) : f; + } return this.trigger("setData" + d[1] + "!", [d[0], b]).each( + function () { + c.data(this, a, b); + } + ); + }, + removeData: function (a) { + return this.each(function () { + c.removeData(this, a); + }); + }, + }); + c.extend({ + queue: function (a, b, d) { + if (a) { + b = (b || "fx") + "queue"; + var f = c.data(a, b); + if (!d) return f || []; + if (!f || c.isArray(d)) f = c.data(a, b, c.makeArray(d)); + else f.push(d); + return f; + } + }, + dequeue: function (a, b) { + b = b || "fx"; + var d = c.queue(a, b), + f = d.shift(); + if (f === "inprogress") f = d.shift(); + if (f) { + b === "fx" && d.unshift("inprogress"); + f.call(a, function () { + c.dequeue(a, b); + }); + } + }, + }); + c.fn.extend({ + queue: function (a, b) { + if (typeof a !== "string") { + b = a; + a = "fx"; + } + if (b === w) return c.queue(this[0], a); + return this.each(function () { + var d = c.queue(this, a, b); + a === "fx" && d[0] !== "inprogress" && c.dequeue(this, a); + }); + }, + dequeue: function (a) { + return this.each(function () { + c.dequeue(this, a); + }); + }, + delay: function (a, b) { + a = c.fx ? c.fx.speeds[a] || a : a; + b = b || "fx"; + return this.queue(b, function () { + var d = this; + setTimeout(function () { + c.dequeue(d, b); + }, a); + }); + }, + clearQueue: function (a) { + return this.queue(a || "fx", []); + }, + }); + var Aa = /[\n\t]/g, + ca = /\s+/, + Za = /\r/g, + $a = /href|src|style/, + ab = /(button|input)/i, + bb = /(button|input|object|select|textarea)/i, + cb = /^(a|area)$/i, + Ba = /radio|checkbox/; + c.fn.extend({ + attr: function (a, b) { + return X(this, a, b, true, c.attr); + }, + removeAttr: function (a) { + return this.each(function () { + c.attr(this, a, ""); + this.nodeType === 1 && this.removeAttribute(a); + }); + }, + addClass: function (a) { + if (c.isFunction(a)) + return this.each(function (n) { + var r = c(this); + r.addClass(a.call(this, n, r.attr("class"))); + }); + if (a && typeof a === "string") + for (var b = (a || "").split(ca), d = 0, f = this.length; d < f; d++) { + var e = this[d]; + if (e.nodeType === 1) + if (e.className) { + for ( + var j = " " + e.className + " ", + i = e.className, + o = 0, + k = b.length; + o < k; + o++ + ) + if (j.indexOf(" " + b[o] + " ") < 0) i += " " + b[o]; + e.className = c.trim(i); + } else e.className = a; + } + return this; + }, + removeClass: function (a) { + if (c.isFunction(a)) + return this.each(function (k) { + var n = c(this); + n.removeClass(a.call(this, k, n.attr("class"))); + }); + if ((a && typeof a === "string") || a === w) + for (var b = (a || "").split(ca), d = 0, f = this.length; d < f; d++) { + var e = this[d]; + if (e.nodeType === 1 && e.className) + if (a) { + for ( + var j = (" " + e.className + " ").replace(Aa, " "), + i = 0, + o = b.length; + i < o; + i++ + ) + j = j.replace(" " + b[i] + " ", " "); + e.className = c.trim(j); + } else e.className = ""; + } + return this; + }, + toggleClass: function (a, b) { + var d = typeof a, + f = typeof b === "boolean"; + if (c.isFunction(a)) + return this.each(function (e) { + var j = c(this); + j.toggleClass(a.call(this, e, j.attr("class"), b), b); + }); + return this.each(function () { + if (d === "string") + for ( + var e, j = 0, i = c(this), o = b, k = a.split(ca); + (e = k[j++]); + + ) { + o = f ? o : !i.hasClass(e); + i[o ? "addClass" : "removeClass"](e); + } + else if (d === "undefined" || d === "boolean") { + this.className && c.data(this, "__className__", this.className); + this.className = + this.className || a === false + ? "" + : c.data(this, "__className__") || ""; + } + }); + }, + hasClass: function (a) { + a = " " + a + " "; + for (var b = 0, d = this.length; b < d; b++) + if ((" " + this[b].className + " ").replace(Aa, " ").indexOf(a) > -1) + return true; + return false; + }, + val: function (a) { + if (a === w) { + var b = this[0]; + if (b) { + if (c.nodeName(b, "option")) + return (b.attributes.value || {}).specified ? b.value : b.text; + if (c.nodeName(b, "select")) { + var d = b.selectedIndex, + f = [], + e = b.options; + b = b.type === "select-one"; + if (d < 0) return null; + var j = b ? d : 0; + for (d = b ? d + 1 : e.length; j < d; j++) { + var i = e[j]; + if (i.selected) { + a = c(i).val(); + if (b) return a; + f.push(a); + } + } + return f; + } + if (Ba.test(b.type) && !c.support.checkOn) + return b.getAttribute("value") === null ? "on" : b.value; + return (b.value || "").replace(Za, ""); + } + return w; + } + var o = c.isFunction(a); + return this.each(function (k) { + var n = c(this), + r = a; + if (this.nodeType === 1) { + if (o) r = a.call(this, k, n.val()); + if (typeof r === "number") r = String(r); + if (c.isArray(r) && Ba.test(this.type)) + this.checked = c.inArray(n.val(), r) >= 0; + else if (c.nodeName(this, "select")) { + var u = c.makeArray(r); + c("option", this).each(function () { + this.selected = c.inArray(c(this).val(), u) >= 0; + }); + if (!u.length) this.selectedIndex = -1; + } else this.value = r; + } + }); + }, + }); + c.extend({ + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true, + }, + attr: function (a, b, d, f) { + if (!a || a.nodeType === 3 || a.nodeType === 8) return w; + if (f && b in c.attrFn) return c(a)[b](d); + f = a.nodeType !== 1 || !c.isXMLDoc(a); + var e = d !== w; + b = (f && c.props[b]) || b; + if (a.nodeType === 1) { + var j = $a.test(b); + if (b in a && f && !j) { + if (e) { + b === "type" && + ab.test(a.nodeName) && + a.parentNode && + c.error("type property can't be changed"); + a[b] = d; + } + if (c.nodeName(a, "form") && a.getAttributeNode(b)) + return a.getAttributeNode(b).nodeValue; + if (b === "tabIndex") + return (b = a.getAttributeNode("tabIndex")) && b.specified + ? b.value + : bb.test(a.nodeName) || (cb.test(a.nodeName) && a.href) + ? 0 + : w; + return a[b]; + } + if (!c.support.style && f && b === "style") { + if (e) a.style.cssText = String(d); + return a.style.cssText; + } + e && a.setAttribute(b, String(d)); + a = + !c.support.hrefNormalized && f && j + ? a.getAttribute(b, 2) + : a.getAttribute(b); + return a === null ? w : a; + } + return c.style(a, b, d); + }, + }); + var O = /\.(.*)$/, + db = function (a) { + return a.replace(/[^\w\s\.\|`]/g, function (b) { + return "\\" + b; + }); + }; + c.event = { + add: function (a, b, d, f) { + if (!(a.nodeType === 3 || a.nodeType === 8)) { + if (a.setInterval && a !== A && !a.frameElement) a = A; + var e, j; + if (d.handler) { + e = d; + d = e.handler; + } + if (!d.guid) d.guid = c.guid++; + if ((j = c.data(a))) { + var i = (j.events = j.events || {}), + o = j.handle; + if (!o) + j.handle = o = function () { + return typeof c !== "undefined" && !c.event.triggered + ? c.event.handle.apply(o.elem, arguments) + : w; + }; + o.elem = a; + b = b.split(" "); + for (var k, n = 0, r; (k = b[n++]); ) { + j = e ? c.extend({}, e) : {handler: d, data: f}; + if (k.indexOf(".") > -1) { + r = k.split("."); + k = r.shift(); + j.namespace = r.slice(0).sort().join("."); + } else { + r = []; + j.namespace = ""; + } + j.type = k; + j.guid = d.guid; + var u = i[k], + z = c.event.special[k] || {}; + if (!u) { + u = i[k] = []; + if (!z.setup || z.setup.call(a, f, r, o) === false) + if (a.addEventListener) a.addEventListener(k, o, false); + else a.attachEvent && a.attachEvent("on" + k, o); + } + if (z.add) { + z.add.call(a, j); + if (!j.handler.guid) j.handler.guid = d.guid; + } + u.push(j); + c.event.global[k] = true; + } + a = null; + } + } + }, + global: {}, + remove: function (a, b, d, f) { + if (!(a.nodeType === 3 || a.nodeType === 8)) { + var e, + j = 0, + i, + o, + k, + n, + r, + u, + z = c.data(a), + C = z && z.events; + if (z && C) { + if (b && b.type) { + d = b.handler; + b = b.type; + } + if (!b || (typeof b === "string" && b.charAt(0) === ".")) { + b = b || ""; + for (e in C) c.event.remove(a, e + b); + } else { + for (b = b.split(" "); (e = b[j++]); ) { + n = e; + i = e.indexOf(".") < 0; + o = []; + if (!i) { + o = e.split("."); + e = o.shift(); + k = new RegExp( + "(^|\\.)" + + c + .map(o.slice(0).sort(), db) + .join("\\.(?:.*\\.)?") + + "(\\.|$)" + ); + } + if ((r = C[e])) + if (d) { + n = c.event.special[e] || {}; + for (B = f || 0; B < r.length; B++) { + u = r[B]; + if (d.guid === u.guid) { + if (i || k.test(u.namespace)) { + f == null && r.splice(B--, 1); + n.remove && n.remove.call(a, u); + } + if (f != null) break; + } + } + if ( + r.length === 0 || + (f != null && r.length === 1) + ) { + if ( + !n.teardown || + n.teardown.call(a, o) === false + ) + Ca(a, e, z.handle); + delete C[e]; + } + } else + for (var B = 0; B < r.length; B++) { + u = r[B]; + if (i || k.test(u.namespace)) { + c.event.remove(a, n, u.handler, B); + r.splice(B--, 1); + } + } + } + if (c.isEmptyObject(C)) { + if ((b = z.handle)) b.elem = null; + delete z.events; + delete z.handle; + c.isEmptyObject(z) && c.removeData(a); + } + } + } + } + }, + trigger: function (a, b, d, f) { + var e = a.type || a; + if (!f) { + a = + typeof a === "object" + ? a[G] + ? a + : c.extend(c.Event(e), a) + : c.Event(e); + if (e.indexOf("!") >= 0) { + a.type = e = e.slice(0, -1); + a.exclusive = true; + } + if (!d) { + a.stopPropagation(); + c.event.global[e] && + c.each(c.cache, function () { + this.events && + this.events[e] && + c.event.trigger(a, b, this.handle.elem); + }); + } + if (!d || d.nodeType === 3 || d.nodeType === 8) return w; + a.result = w; + a.target = d; + b = c.makeArray(b); + b.unshift(a); + } + a.currentTarget = d; + (f = c.data(d, "handle")) && f.apply(d, b); + f = d.parentNode || d.ownerDocument; + try { + if (!(d && d.nodeName && c.noData[d.nodeName.toLowerCase()])) + if (d["on" + e] && d["on" + e].apply(d, b) === false) + a.result = false; + } catch (j) {} + if (!a.isPropagationStopped() && f) c.event.trigger(a, b, f, true); + else if (!a.isDefaultPrevented()) { + f = a.target; + var i, + o = c.nodeName(f, "a") && e === "click", + k = c.event.special[e] || {}; + if ( + (!k._default || k._default.call(d, a) === false) && + !o && + !(f && f.nodeName && c.noData[f.nodeName.toLowerCase()]) + ) { + try { + if (f[e]) { + if ((i = f["on" + e])) f["on" + e] = null; + c.event.triggered = true; + f[e](); + } + } catch (n) {} + if (i) f["on" + e] = i; + c.event.triggered = false; + } + } + }, + handle: function (a) { + var b, d, f, e; + a = arguments[0] = c.event.fix(a || A.event); + a.currentTarget = this; + b = a.type.indexOf(".") < 0 && !a.exclusive; + if (!b) { + d = a.type.split("."); + a.type = d.shift(); + f = new RegExp( + "(^|\\.)" + d.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)" + ); + } + e = c.data(this, "events"); + d = e[a.type]; + if (e && d) { + d = d.slice(0); + e = 0; + for (var j = d.length; e < j; e++) { + var i = d[e]; + if (b || f.test(i.namespace)) { + a.handler = i.handler; + a.data = i.data; + a.handleObj = i; + i = i.handler.apply(this, arguments); + if (i !== w) { + a.result = i; + if (i === false) { + a.preventDefault(); + a.stopPropagation(); + } + } + if (a.isImmediatePropagationStopped()) break; + } + } + } + return a.result; + }, + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split( + " " + ), + fix: function (a) { + if (a[G]) return a; + var b = a; + a = c.Event(b); + for (var d = this.props.length, f; d; ) { + f = this.props[--d]; + a[f] = b[f]; + } + if (!a.target) a.target = a.srcElement || s; + if (a.target.nodeType === 3) a.target = a.target.parentNode; + if (!a.relatedTarget && a.fromElement) + a.relatedTarget = + a.fromElement === a.target ? a.toElement : a.fromElement; + if (a.pageX == null && a.clientX != null) { + b = s.documentElement; + d = s.body; + a.pageX = + a.clientX + + ((b && b.scrollLeft) || (d && d.scrollLeft) || 0) - + ((b && b.clientLeft) || (d && d.clientLeft) || 0); + a.pageY = + a.clientY + + ((b && b.scrollTop) || (d && d.scrollTop) || 0) - + ((b && b.clientTop) || (d && d.clientTop) || 0); + } + if (!a.which && (a.charCode || a.charCode === 0 ? a.charCode : a.keyCode)) + a.which = a.charCode || a.keyCode; + if (!a.metaKey && a.ctrlKey) a.metaKey = a.ctrlKey; + if (!a.which && a.button !== w) + a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0; + return a; + }, + guid: 1e8, + proxy: c.proxy, + special: { + ready: {setup: c.bindReady, teardown: c.noop}, + live: { + add: function (a) { + c.event.add(this, a.origType, c.extend({}, a, {handler: oa})); + }, + remove: function (a) { + var b = true, + d = a.origType.replace(O, ""); + c.each(c.data(this, "events").live || [], function () { + if (d === this.origType.replace(O, "")) return (b = false); + }); + b && c.event.remove(this, a.origType, oa); + }, + }, + beforeunload: { + setup: function (a, b, d) { + if (this.setInterval) this.onbeforeunload = d; + return false; + }, + teardown: function (a, b) { + if (this.onbeforeunload === b) this.onbeforeunload = null; + }, + }, + }, + }; + var Ca = s.removeEventListener + ? function (a, b, d) { + a.removeEventListener(b, d, false); + } + : function (a, b, d) { + a.detachEvent("on" + b, d); + }; + c.Event = function (a) { + if (!this.preventDefault) return new c.Event(a); + if (a && a.type) { + this.originalEvent = a; + this.type = a.type; + } else this.type = a; + this.timeStamp = J(); + this[G] = true; + }; + c.Event.prototype = { + preventDefault: function () { + this.isDefaultPrevented = Z; + var a = this.originalEvent; + if (a) { + a.preventDefault && a.preventDefault(); + a.returnValue = false; + } + }, + stopPropagation: function () { + this.isPropagationStopped = Z; + var a = this.originalEvent; + if (a) { + a.stopPropagation && a.stopPropagation(); + a.cancelBubble = true; + } + }, + stopImmediatePropagation: function () { + this.isImmediatePropagationStopped = Z; + this.stopPropagation(); + }, + isDefaultPrevented: Y, + isPropagationStopped: Y, + isImmediatePropagationStopped: Y, + }; + var Da = function (a) { + var b = a.relatedTarget; + try { + for (; b && b !== this; ) b = b.parentNode; + if (b !== this) { + a.type = a.data; + c.event.handle.apply(this, arguments); + } + } catch (d) {} + }, + Ea = function (a) { + a.type = a.data; + c.event.handle.apply(this, arguments); + }; + c.each({mouseenter: "mouseover", mouseleave: "mouseout"}, function (a, b) { + c.event.special[a] = { + setup: function (d) { + c.event.add(this, b, d && d.selector ? Ea : Da, a); + }, + teardown: function (d) { + c.event.remove(this, b, d && d.selector ? Ea : Da); + }, + }; + }); + if (!c.support.submitBubbles) + c.event.special.submit = { + setup: function () { + if (this.nodeName.toLowerCase() !== "form") { + c.event.add(this, "click.specialSubmit", function (a) { + var b = a.target, + d = b.type; + if ( + (d === "submit" || d === "image") && + c(b).closest("form").length + ) + return na("submit", this, arguments); + }); + c.event.add(this, "keypress.specialSubmit", function (a) { + var b = a.target, + d = b.type; + if ( + (d === "text" || d === "password") && + c(b).closest("form").length && + a.keyCode === 13 + ) + return na("submit", this, arguments); + }); + } else return false; + }, + teardown: function () { + c.event.remove(this, ".specialSubmit"); + }, + }; + if (!c.support.changeBubbles) { + var da = /textarea|input|select/i, + ea, + Fa = function (a) { + var b = a.type, + d = a.value; + if (b === "radio" || b === "checkbox") d = a.checked; + else if (b === "select-multiple") + d = + a.selectedIndex > -1 + ? c + .map(a.options, function (f) { + return f.selected; + }) + .join("-") + : ""; + else if (a.nodeName.toLowerCase() === "select") d = a.selectedIndex; + return d; + }, + fa = function (a, b) { + var d = a.target, + f, + e; + if (!(!da.test(d.nodeName) || d.readOnly)) { + f = c.data(d, "_change_data"); + e = Fa(d); + if (a.type !== "focusout" || d.type !== "radio") + c.data(d, "_change_data", e); + if (!(f === w || e === f)) + if (f != null || e) { + a.type = "change"; + return c.event.trigger(a, b, d); + } + } + }; + c.event.special.change = { + filters: { + focusout: fa, + click: function (a) { + var b = a.target, + d = b.type; + if ( + d === "radio" || + d === "checkbox" || + b.nodeName.toLowerCase() === "select" + ) + return fa.call(this, a); + }, + keydown: function (a) { + var b = a.target, + d = b.type; + if ( + (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea") || + (a.keyCode === 32 && (d === "checkbox" || d === "radio")) || + d === "select-multiple" + ) + return fa.call(this, a); + }, + beforeactivate: function (a) { + a = a.target; + c.data(a, "_change_data", Fa(a)); + }, + }, + setup: function () { + if (this.type === "file") return false; + for (var a in ea) c.event.add(this, a + ".specialChange", ea[a]); + return da.test(this.nodeName); + }, + teardown: function () { + c.event.remove(this, ".specialChange"); + return da.test(this.nodeName); + }, + }; + ea = c.event.special.change.filters; + } + s.addEventListener && + c.each({focus: "focusin", blur: "focusout"}, function (a, b) { + function d(f) { + f = c.event.fix(f); + f.type = b; + return c.event.handle.call(this, f); + } + c.event.special[b] = { + setup: function () { + this.addEventListener(a, d, true); + }, + teardown: function () { + this.removeEventListener(a, d, true); + }, + }; + }); + c.each(["bind", "one"], function (a, b) { + c.fn[b] = function (d, f, e) { + if (typeof d === "object") { + for (var j in d) this[b](j, f, d[j], e); + return this; + } + if (c.isFunction(f)) { + e = f; + f = w; + } + var i = + b === "one" + ? c.proxy(e, function (k) { + c(this).unbind(k, i); + return e.apply(this, arguments); + }) + : e; + if (d === "unload" && b !== "one") this.one(d, f, e); + else { + j = 0; + for (var o = this.length; j < o; j++) c.event.add(this[j], d, i, f); + } + return this; + }; + }); + c.fn.extend({ + unbind: function (a, b) { + if (typeof a === "object" && !a.preventDefault) + for (var d in a) this.unbind(d, a[d]); + else { + d = 0; + for (var f = this.length; d < f; d++) c.event.remove(this[d], a, b); + } + return this; + }, + delegate: function (a, b, d, f) { + return this.live(b, d, f, a); + }, + undelegate: function (a, b, d) { + return arguments.length === 0 + ? this.unbind("live") + : this.die(b, null, d, a); + }, + trigger: function (a, b) { + return this.each(function () { + c.event.trigger(a, b, this); + }); + }, + triggerHandler: function (a, b) { + if (this[0]) { + a = c.Event(a); + a.preventDefault(); + a.stopPropagation(); + c.event.trigger(a, b, this[0]); + return a.result; + } + }, + toggle: function (a) { + for (var b = arguments, d = 1; d < b.length; ) c.proxy(a, b[d++]); + return this.click( + c.proxy(a, function (f) { + var e = (c.data(this, "lastToggle" + a.guid) || 0) % d; + c.data(this, "lastToggle" + a.guid, e + 1); + f.preventDefault(); + return b[e].apply(this, arguments) || false; + }) + ); + }, + hover: function (a, b) { + return this.mouseenter(a).mouseleave(b || a); + }, + }); + var Ga = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout", + }; + c.each(["live", "die"], function (a, b) { + c.fn[b] = function (d, f, e, j) { + var i, + o = 0, + k, + n, + r = j || this.selector, + u = j ? this : c(this.context); + if (c.isFunction(f)) { + e = f; + f = w; + } + for (d = (d || "").split(" "); (i = d[o++]) != null; ) { + j = O.exec(i); + k = ""; + if (j) { + k = j[0]; + i = i.replace(O, ""); + } + if (i === "hover") d.push("mouseenter" + k, "mouseleave" + k); + else { + n = i; + if (i === "focus" || i === "blur") { + d.push(Ga[i] + k); + i += k; + } else i = (Ga[i] || i) + k; + b === "live" + ? u.each(function () { + c.event.add(this, pa(i, r), { + data: f, + selector: r, + handler: e, + origType: i, + origHandler: e, + preType: n, + }); + }) + : u.unbind(pa(i, r), e); + } + } + return this; + }; + }); + c.each( + "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split( + " " + ), + function (a, b) { + c.fn[b] = function (d) { + return d ? this.bind(b, d) : this.trigger(b); + }; + if (c.attrFn) c.attrFn[b] = true; + } + ); + A.attachEvent && + !A.addEventListener && + A.attachEvent("onunload", function () { + for (var a in c.cache) + if (c.cache[a].handle) + try { + c.event.remove(c.cache[a].handle.elem); + } catch (b) {} + }); + (function () { + function a(g) { + for (var h = "", l, m = 0; g[m]; m++) { + l = g[m]; + if (l.nodeType === 3 || l.nodeType === 4) h += l.nodeValue; + else if (l.nodeType !== 8) h += a(l.childNodes); + } + return h; + } + function b(g, h, l, m, q, p) { + q = 0; + for (var v = m.length; q < v; q++) { + var t = m[q]; + if (t) { + t = t[g]; + for (var y = false; t; ) { + if (t.sizcache === l) { + y = m[t.sizset]; + break; + } + if (t.nodeType === 1 && !p) { + t.sizcache = l; + t.sizset = q; + } + if (t.nodeName.toLowerCase() === h) { + y = t; + break; + } + t = t[g]; + } + m[q] = y; + } + } + } + function d(g, h, l, m, q, p) { + q = 0; + for (var v = m.length; q < v; q++) { + var t = m[q]; + if (t) { + t = t[g]; + for (var y = false; t; ) { + if (t.sizcache === l) { + y = m[t.sizset]; + break; + } + if (t.nodeType === 1) { + if (!p) { + t.sizcache = l; + t.sizset = q; + } + if (typeof h !== "string") { + if (t === h) { + y = true; + break; + } + } else if (k.filter(h, [t]).length > 0) { + y = t; + break; + } + } + t = t[g]; + } + m[q] = y; + } + } + } + var f = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + e = 0, + j = Object.prototype.toString, + i = false, + o = true; + [0, 0].sort(function () { + o = false; + return 0; + }); + var k = function (g, h, l, m) { + l = l || []; + var q = (h = h || s); + if (h.nodeType !== 1 && h.nodeType !== 9) return []; + if (!g || typeof g !== "string") return l; + for ( + var p = [], v, t, y, S, H = true, M = x(h), I = g; + (f.exec(""), (v = f.exec(I))) !== null; + + ) { + I = v[3]; + p.push(v[1]); + if (v[2]) { + S = v[3]; + break; + } + } + if (p.length > 1 && r.exec(g)) + if (p.length === 2 && n.relative[p[0]]) t = ga(p[0] + p[1], h); + else + for (t = n.relative[p[0]] ? [h] : k(p.shift(), h); p.length; ) { + g = p.shift(); + if (n.relative[g]) g += p.shift(); + t = ga(g, t); + } + else { + if ( + !m && + p.length > 1 && + h.nodeType === 9 && + !M && + n.match.ID.test(p[0]) && + !n.match.ID.test(p[p.length - 1]) + ) { + v = k.find(p.shift(), h, M); + h = v.expr ? k.filter(v.expr, v.set)[0] : v.set[0]; + } + if (h) { + v = m + ? {expr: p.pop(), set: z(m)} + : k.find( + p.pop(), + p.length === 1 && + (p[0] === "~" || p[0] === "+") && + h.parentNode + ? h.parentNode + : h, + M + ); + t = v.expr ? k.filter(v.expr, v.set) : v.set; + if (p.length > 0) y = z(t); + else H = false; + for (; p.length; ) { + var D = p.pop(); + v = D; + if (n.relative[D]) v = p.pop(); + else D = ""; + if (v == null) v = h; + n.relative[D](y, v, M); + } + } else y = []; + } + y || (y = t); + y || k.error(D || g); + if (j.call(y) === "[object Array]") + if (H) + if (h && h.nodeType === 1) + for (g = 0; y[g] != null; g++) { + if ( + y[g] && + (y[g] === true || (y[g].nodeType === 1 && E(h, y[g]))) + ) + l.push(t[g]); + } + else + for (g = 0; y[g] != null; g++) + y[g] && y[g].nodeType === 1 && l.push(t[g]); + else l.push.apply(l, y); + else z(y, l); + if (S) { + k(S, q, l, m); + k.uniqueSort(l); + } + return l; + }; + k.uniqueSort = function (g) { + if (B) { + i = o; + g.sort(B); + if (i) + for (var h = 1; h < g.length; h++) + g[h] === g[h - 1] && g.splice(h--, 1); + } + return g; + }; + k.matches = function (g, h) { + return k(g, null, null, h); + }; + k.find = function (g, h, l) { + var m, q; + if (!g) return []; + for (var p = 0, v = n.order.length; p < v; p++) { + var t = n.order[p]; + if ((q = n.leftMatch[t].exec(g))) { + var y = q[1]; + q.splice(1, 1); + if (y.substr(y.length - 1) !== "\\") { + q[1] = (q[1] || "").replace(/\\/g, ""); + m = n.find[t](q, h, l); + if (m != null) { + g = g.replace(n.match[t], ""); + break; + } + } + } + } + m || (m = h.getElementsByTagName("*")); + return {set: m, expr: g}; + }; + k.filter = function (g, h, l, m) { + for ( + var q = g, p = [], v = h, t, y, S = h && h[0] && x(h[0]); + g && h.length; + + ) { + for (var H in n.filter) + if ((t = n.leftMatch[H].exec(g)) != null && t[2]) { + var M = n.filter[H], + I, + D; + D = t[1]; + y = false; + t.splice(1, 1); + if (D.substr(D.length - 1) !== "\\") { + if (v === p) p = []; + if (n.preFilter[H]) + if ((t = n.preFilter[H](t, v, l, p, m, S))) { + if (t === true) continue; + } else y = I = true; + if (t) + for (var U = 0; (D = v[U]) != null; U++) + if (D) { + I = M(D, t, U, v); + var Ha = m ^ Boolean(I); + if (l && I != null) + if (Ha) y = true; + else v[U] = false; + else if (Ha) { + p.push(D); + y = true; + } + } + if (I !== w) { + l || (v = p); + g = g.replace(n.match[H], ""); + if (!y) return []; + break; + } + } + } + if (g === q) + if (y == null) k.error(g); + else break; + q = g; + } + return v; + }; + k.error = function (g) { + throw "Syntax error, unrecognized expression: " + g; + }; + var n = (k.selectors = { + order: ["ID", "NAME", "TAG"], + match: { + ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/, + }, + leftMatch: {}, + attrMap: {class: "className", for: "htmlFor"}, + attrHandle: { + href: function (g) { + return g.getAttribute("href"); + }, + }, + relative: { + "+": function (g, h) { + var l = typeof h === "string", + m = l && !/\W/.test(h); + l = l && !m; + if (m) h = h.toLowerCase(); + m = 0; + for (var q = g.length, p; m < q; m++) + if ((p = g[m])) { + for (; (p = p.previousSibling) && p.nodeType !== 1; ); + g[m] = + l || (p && p.nodeName.toLowerCase() === h) + ? p || false + : p === h; + } + l && k.filter(h, g, true); + }, + ">": function (g, h) { + var l = typeof h === "string"; + if (l && !/\W/.test(h)) { + h = h.toLowerCase(); + for (var m = 0, q = g.length; m < q; m++) { + var p = g[m]; + if (p) { + l = p.parentNode; + g[m] = l.nodeName.toLowerCase() === h ? l : false; + } + } + } else { + m = 0; + for (q = g.length; m < q; m++) + if ((p = g[m])) + g[m] = l ? p.parentNode : p.parentNode === h; + l && k.filter(h, g, true); + } + }, + "": function (g, h, l) { + var m = e++, + q = d; + if (typeof h === "string" && !/\W/.test(h)) { + var p = (h = h.toLowerCase()); + q = b; + } + q("parentNode", h, m, g, p, l); + }, + "~": function (g, h, l) { + var m = e++, + q = d; + if (typeof h === "string" && !/\W/.test(h)) { + var p = (h = h.toLowerCase()); + q = b; + } + q("previousSibling", h, m, g, p, l); + }, + }, + find: { + ID: function (g, h, l) { + if (typeof h.getElementById !== "undefined" && !l) + return (g = h.getElementById(g[1])) ? [g] : []; + }, + NAME: function (g, h) { + if (typeof h.getElementsByName !== "undefined") { + var l = []; + h = h.getElementsByName(g[1]); + for (var m = 0, q = h.length; m < q; m++) + h[m].getAttribute("name") === g[1] && l.push(h[m]); + return l.length === 0 ? null : l; + } + }, + TAG: function (g, h) { + return h.getElementsByTagName(g[1]); + }, + }, + preFilter: { + CLASS: function (g, h, l, m, q, p) { + g = " " + g[1].replace(/\\/g, "") + " "; + if (p) return g; + p = 0; + for (var v; (v = h[p]) != null; p++) + if (v) + if ( + q ^ + (v.className && + (" " + v.className + " ") + .replace(/[\t\n]/g, " ") + .indexOf(g) >= 0) + ) + l || m.push(v); + else if (l) h[p] = false; + return false; + }, + ID: function (g) { + return g[1].replace(/\\/g, ""); + }, + TAG: function (g) { + return g[1].toLowerCase(); + }, + CHILD: function (g) { + if (g[1] === "nth") { + var h = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( + (g[2] === "even" && "2n") || + (g[2] === "odd" && "2n+1") || + (!/\D/.test(g[2]) && "0n+" + g[2]) || + g[2] + ); + g[2] = h[1] + (h[2] || 1) - 0; + g[3] = h[3] - 0; + } + g[0] = e++; + return g; + }, + ATTR: function (g, h, l, m, q, p) { + h = g[1].replace(/\\/g, ""); + if (!p && n.attrMap[h]) g[1] = n.attrMap[h]; + if (g[2] === "~=") g[4] = " " + g[4] + " "; + return g; + }, + PSEUDO: function (g, h, l, m, q) { + if (g[1] === "not") + if ((f.exec(g[3]) || "").length > 1 || /^\w/.test(g[3])) + g[3] = k(g[3], null, null, h); + else { + g = k.filter(g[3], h, l, true ^ q); + l || m.push.apply(m, g); + return false; + } + else if (n.match.POS.test(g[0]) || n.match.CHILD.test(g[0])) + return true; + return g; + }, + POS: function (g) { + g.unshift(true); + return g; + }, + }, + filters: { + enabled: function (g) { + return g.disabled === false && g.type !== "hidden"; + }, + disabled: function (g) { + return g.disabled === true; + }, + checked: function (g) { + return g.checked === true; + }, + selected: function (g) { + return g.selected === true; + }, + parent: function (g) { + return Boolean(g.firstChild); + }, + empty: function (g) { + return !g.firstChild; + }, + has: function (g, h, l) { + return Boolean(k(l[3], g).length); + }, + header: function (g) { + return /h\d/i.test(g.nodeName); + }, + text: function (g) { + return g.type === "text"; + }, + radio: function (g) { + return g.type === "radio"; + }, + checkbox: function (g) { + return g.type === "checkbox"; + }, + file: function (g) { + return g.type === "file"; + }, + password: function (g) { + return g.type === "password"; + }, + submit: function (g) { + return g.type === "submit"; + }, + image: function (g) { + return g.type === "image"; + }, + reset: function (g) { + return g.type === "reset"; + }, + button: function (g) { + return ( + g.type === "button" || g.nodeName.toLowerCase() === "button" + ); + }, + input: function (g) { + return /input|select|textarea|button/i.test(g.nodeName); + }, + }, + setFilters: { + first: function (g, h) { + return h === 0; + }, + last: function (g, h, l, m) { + return h === m.length - 1; + }, + even: function (g, h) { + return h % 2 === 0; + }, + odd: function (g, h) { + return h % 2 === 1; + }, + lt: function (g, h, l) { + return h < l[3] - 0; + }, + gt: function (g, h, l) { + return h > l[3] - 0; + }, + nth: function (g, h, l) { + return l[3] - 0 === h; + }, + eq: function (g, h, l) { + return l[3] - 0 === h; + }, + }, + filter: { + PSEUDO: function (g, h, l, m) { + var q = h[1], + p = n.filters[q]; + if (p) return p(g, l, h, m); + else if (q === "contains") + return ( + (g.textContent || g.innerText || a([g]) || "").indexOf( + h[3] + ) >= 0 + ); + else if (q === "not") { + h = h[3]; + l = 0; + for (m = h.length; l < m; l++) if (h[l] === g) return false; + return true; + } k.error("Syntax error, unrecognized expression: " + q); + }, + CHILD: function (g, h) { + var l = h[1], + m = g; + switch (l) { + case "only": + case "first": + for (; (m = m.previousSibling); ) + if (m.nodeType === 1) return false; + if (l === "first") return true; + m = g; + case "last": + for (; (m = m.nextSibling); ) + if (m.nodeType === 1) return false; + return true; + case "nth": + l = h[2]; + var q = h[3]; + if (l === 1 && q === 0) return true; + h = h[0]; + var p = g.parentNode; + if (p && (p.sizcache !== h || !g.nodeIndex)) { + var v = 0; + for (m = p.firstChild; m; m = m.nextSibling) + if (m.nodeType === 1) m.nodeIndex = ++v; + p.sizcache = h; + } + g = g.nodeIndex - q; + return l === 0 ? g === 0 : g % l === 0 && g / l >= 0; + } + }, + ID: function (g, h) { + return g.nodeType === 1 && g.getAttribute("id") === h; + }, + TAG: function (g, h) { + return ( + (h === "*" && g.nodeType === 1) || + g.nodeName.toLowerCase() === h + ); + }, + CLASS: function (g, h) { + return ( + ( + " " + + (g.className || g.getAttribute("class")) + + " " + ).indexOf(h) > -1 + ); + }, + ATTR: function (g, h) { + var l = h[1]; + g = n.attrHandle[l] + ? n.attrHandle[l](g) + : g[l] != null + ? g[l] + : g.getAttribute(l); + l = String(g); + var m = h[2]; + h = h[4]; + return g == null + ? m === "!=" + : m === "=" + ? l === h + : m === "*=" + ? l.indexOf(h) >= 0 + : m === "~=" + ? (" " + l + " ").indexOf(h) >= 0 + : !h + ? l && g !== false + : m === "!=" + ? l !== h + : m === "^=" + ? l.indexOf(h) === 0 + : m === "$=" + ? l.substr(l.length - h.length) === h + : m === "|=" + ? l === h || l.substr(0, h.length + 1) === h + "-" + : false; + }, + POS: function (g, h, l, m) { + var q = n.setFilters[h[2]]; + if (q) return q(g, l, h, m); + }, + }, + }), + r = n.match.POS; + for (var u in n.match) { + n.match[u] = new RegExp( + n.match[u].source + /(?![^\[]*\])(?![^\(]*\))/.source + ); + n.leftMatch[u] = new RegExp( + /(^(?:.|\r|\n)*?)/.source + + n.match[u].source.replace(/\\(\d+)/g, function (g, h) { + return "\\" + (h - 0 + 1); + }) + ); + } + var z = function (g, h) { + g = Array.prototype.slice.call(g, 0); + if (h) { + h.push.apply(h, g); + return h; + } + return g; + }; + try { + Array.prototype.slice.call(s.documentElement.childNodes, 0); + } catch (C) { + z = function (g, h) { + h = h || []; + if (j.call(g) === "[object Array]") Array.prototype.push.apply(h, g); + else if (typeof g.length === "number") + for (var l = 0, m = g.length; l < m; l++) h.push(g[l]); + else for (l = 0; g[l]; l++) h.push(g[l]); + return h; + }; + } + var B; + if (s.documentElement.compareDocumentPosition) + B = function (g, h) { + if (!g.compareDocumentPosition || !h.compareDocumentPosition) { + if (g == h) i = true; + return g.compareDocumentPosition ? -1 : 1; + } + g = g.compareDocumentPosition(h) & 4 ? -1 : g === h ? 0 : 1; + if (g === 0) i = true; + return g; + }; + else if ("sourceIndex" in s.documentElement) + B = function (g, h) { + if (!g.sourceIndex || !h.sourceIndex) { + if (g == h) i = true; + return g.sourceIndex ? -1 : 1; + } + g = g.sourceIndex - h.sourceIndex; + if (g === 0) i = true; + return g; + }; + else if (s.createRange) + B = function (g, h) { + if (!g.ownerDocument || !h.ownerDocument) { + if (g == h) i = true; + return g.ownerDocument ? -1 : 1; + } + var l = g.ownerDocument.createRange(), + m = h.ownerDocument.createRange(); + l.setStart(g, 0); + l.setEnd(g, 0); + m.setStart(h, 0); + m.setEnd(h, 0); + g = l.compareBoundaryPoints(Range.START_TO_END, m); + if (g === 0) i = true; + return g; + }; + (function () { + var g = s.createElement("div"), + h = "script" + new Date().getTime(); + g.innerHTML = ""; + var l = s.documentElement; + l.insertBefore(g, l.firstChild); + if (s.getElementById(h)) { + n.find.ID = function (m, q, p) { + if (typeof q.getElementById !== "undefined" && !p) + return (q = q.getElementById(m[1])) + ? q.id === m[1] || + (typeof q.getAttributeNode !== "undefined" && + q.getAttributeNode("id").nodeValue === m[1]) + ? [q] + : w + : []; + }; + n.filter.ID = function (m, q) { + var p = + typeof m.getAttributeNode !== "undefined" && + m.getAttributeNode("id"); + return m.nodeType === 1 && p && p.nodeValue === q; + }; + } + l.removeChild(g); + l = g = null; + })(); + (function () { + var g = s.createElement("div"); + g.appendChild(s.createComment("")); + if (g.getElementsByTagName("*").length > 0) + n.find.TAG = function (h, l) { + l = l.getElementsByTagName(h[1]); + if (h[1] === "*") { + h = []; + for (var m = 0; l[m]; m++) l[m].nodeType === 1 && h.push(l[m]); + l = h; + } + return l; + }; + g.innerHTML = ""; + if ( + g.firstChild && + typeof g.firstChild.getAttribute !== "undefined" && + g.firstChild.getAttribute("href") !== "#" + ) + n.attrHandle.href = function (h) { + return h.getAttribute("href", 2); + }; + g = null; + })(); + s.querySelectorAll && + (function () { + var g = k, + h = s.createElement("div"); + h.innerHTML = "

"; + if (!(h.querySelectorAll && h.querySelectorAll(".TEST").length === 0)) { + k = function (m, q, p, v) { + q = q || s; + if (!v && q.nodeType === 9 && !x(q)) + try { + return z(q.querySelectorAll(m), p); + } catch (t) {} + return g(m, q, p, v); + }; + for (var l in g) k[l] = g[l]; + h = null; + } + })(); + (function () { + var g = s.createElement("div"); + g.innerHTML = "
"; + if ( + !( + !g.getElementsByClassName || + g.getElementsByClassName("e").length === 0 + ) + ) { + g.lastChild.className = "e"; + if (g.getElementsByClassName("e").length !== 1) { + n.order.splice(1, 0, "CLASS"); + n.find.CLASS = function (h, l, m) { + if (typeof l.getElementsByClassName !== "undefined" && !m) + return l.getElementsByClassName(h[1]); + }; + g = null; + } + } + })(); + var E = s.compareDocumentPosition + ? function (g, h) { + return Boolean(g.compareDocumentPosition(h) & 16); + } + : function (g, h) { + return g !== h && (g.contains ? g.contains(h) : true); + }, + x = function (g) { + return (g = (g ? g.ownerDocument || g : 0).documentElement) + ? g.nodeName !== "HTML" + : false; + }, + ga = function (g, h) { + var l = [], + m = "", + q; + for (h = h.nodeType ? [h] : h; (q = n.match.PSEUDO.exec(g)); ) { + m += q[0]; + g = g.replace(n.match.PSEUDO, ""); + } + g = n.relative[g] ? g + "*" : g; + q = 0; + for (var p = h.length; q < p; q++) k(g, h[q], l); + return k.filter(m, l); + }; + c.find = k; + c.expr = k.selectors; + c.expr[":"] = c.expr.filters; + c.unique = k.uniqueSort; + c.text = a; + c.isXMLDoc = x; + c.contains = E; + })(); + var eb = /Until$/, + fb = /^(?:parents|prevUntil|prevAll)/, + gb = /,/; + R = Array.prototype.slice; + var Ia = function (a, b, d) { + if (c.isFunction(b)) + return c.grep(a, function (e, j) { + return Boolean(b.call(e, j, e)) === d; + }); + else if (b.nodeType) + return c.grep(a, function (e) { + return (e === b) === d; + }); + else if (typeof b === "string") { + var f = c.grep(a, function (e) { + return e.nodeType === 1; + }); + if (Ua.test(b)) return c.filter(b, f, !d); + b = c.filter(b, f); + } + return c.grep(a, function (e) { + return c.inArray(e, b) >= 0 === d; + }); + }; + c.fn.extend({ + find: function (a) { + for ( + var b = this.pushStack("", "find", a), d = 0, f = 0, e = this.length; + f < e; + f++ + ) { + d = b.length; + c.find(a, this[f], b); + if (f > 0) + for (var j = d; j < b.length; j++) + for (var i = 0; i < d; i++) + if (b[i] === b[j]) { + b.splice(j--, 1); + break; + } + } + return b; + }, + has: function (a) { + var b = c(a); + return this.filter(function () { + for (var d = 0, f = b.length; d < f; d++) + if (c.contains(this, b[d])) return true; + }); + }, + not: function (a) { + return this.pushStack(Ia(this, a, false), "not", a); + }, + filter: function (a) { + return this.pushStack(Ia(this, a, true), "filter", a); + }, + is: function (a) { + return Boolean(a) && c.filter(a, this).length > 0; + }, + closest: function (a, b) { + if (c.isArray(a)) { + var d = [], + f = this[0], + e, + j = {}, + i; + if (f && a.length) { + e = 0; + for (var o = a.length; e < o; e++) { + i = a[e]; + j[i] || + (j[i] = c.expr.match.POS.test(i) + ? c(i, b || this.context) + : i); + } + for (; f && f.ownerDocument && f !== b; ) { + for (i in j) { + e = j[i]; + if (e.jquery ? e.index(f) > -1 : c(f).is(e)) { + d.push({selector: i, elem: f}); + delete j[i]; + } + } + f = f.parentNode; + } + } + return d; + } + var k = c.expr.match.POS.test(a) ? c(a, b || this.context) : null; + return this.map(function (n, r) { + for (; r && r.ownerDocument && r !== b; ) { + if (k ? k.index(r) > -1 : c(r).is(a)) return r; + r = r.parentNode; + } + return null; + }); + }, + index: function (a) { + if (!a || typeof a === "string") + return c.inArray(this[0], a ? c(a) : this.parent().children()); + return c.inArray(a.jquery ? a[0] : a, this); + }, + add: function (a, b) { + a = typeof a === "string" ? c(a, b || this.context) : c.makeArray(a); + b = c.merge(this.get(), a); + return this.pushStack(qa(a[0]) || qa(b[0]) ? b : c.unique(b)); + }, + andSelf: function () { + return this.add(this.prevObject); + }, + }); + c.each( + { + parent: function (a) { + return (a = a.parentNode) && a.nodeType !== 11 ? a : null; + }, + parents: function (a) { + return c.dir(a, "parentNode"); + }, + parentsUntil: function (a, b, d) { + return c.dir(a, "parentNode", d); + }, + next: function (a) { + return c.nth(a, 2, "nextSibling"); + }, + prev: function (a) { + return c.nth(a, 2, "previousSibling"); + }, + nextAll: function (a) { + return c.dir(a, "nextSibling"); + }, + prevAll: function (a) { + return c.dir(a, "previousSibling"); + }, + nextUntil: function (a, b, d) { + return c.dir(a, "nextSibling", d); + }, + prevUntil: function (a, b, d) { + return c.dir(a, "previousSibling", d); + }, + siblings: function (a) { + return c.sibling(a.parentNode.firstChild, a); + }, + children: function (a) { + return c.sibling(a.firstChild); + }, + contents: function (a) { + return c.nodeName(a, "iframe") + ? a.contentDocument || a.contentWindow.document + : c.makeArray(a.childNodes); + }, + }, + function (a, b) { + c.fn[a] = function (d, f) { + var e = c.map(this, b, d); + eb.test(a) || (f = d); + if (f && typeof f === "string") e = c.filter(f, e); + e = this.length > 1 ? c.unique(e) : e; + if ((this.length > 1 || gb.test(f)) && fb.test(a)) e = e.reverse(); + return this.pushStack(e, a, R.call(arguments).join(",")); + }; + } + ); + c.extend({ + filter: function (a, b, d) { + if (d) a = ":not(" + a + ")"; + return c.find.matches(a, b); + }, + dir: function (a, b, d) { + var f = []; + for ( + a = a[b]; + a && a.nodeType !== 9 && (d === w || a.nodeType !== 1 || !c(a).is(d)); + + ) { + a.nodeType === 1 && f.push(a); + a = a[b]; + } + return f; + }, + nth: function (a, b, d) { + b = b || 1; + for (var f = 0; a; a = a[d]) if (a.nodeType === 1 && ++f === b) break; + return a; + }, + sibling: function (a, b) { + for (var d = []; a; a = a.nextSibling) + a.nodeType === 1 && a !== b && d.push(a); + return d; + }, + }); + var Ja = / jQuery\d+="(?:\d+|null)"/g, + V = /^\s+/, + Ka = /(<([\w:]+)[^>]*?)\/>/g, + hb = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, + La = /<([\w:]+)/, + ib = /"; + }, + F = { + option: [1, ""], + legend: [1, "
", "
"], + thead: [1, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + col: [2, "", "
"], + area: [1, "", ""], + _default: [0, "", ""], + }; + F.optgroup = F.option; + F.tbody = F.tfoot = F.colgroup = F.caption = F.thead; + F.th = F.td; + if (!c.support.htmlSerialize) F._default = [1, "div
", "
"]; + c.fn.extend({ + text: function (a) { + if (c.isFunction(a)) + return this.each(function (b) { + var d = c(this); + d.text(a.call(this, b, d.text())); + }); + if (typeof a !== "object" && a !== w) + return this.empty().append( + ((this[0] && this[0].ownerDocument) || s).createTextNode(a) + ); + return c.text(this); + }, + wrapAll: function (a) { + if (c.isFunction(a)) + return this.each(function (d) { + c(this).wrapAll(a.call(this, d)); + }); + if (this[0]) { + var b = c(a, this[0].ownerDocument).eq(0).clone(true); + this[0].parentNode && b.insertBefore(this[0]); + b.map(function () { + for (var d = this; d.firstChild && d.firstChild.nodeType === 1; ) + d = d.firstChild; + return d; + }).append(this); + } + return this; + }, + wrapInner: function (a) { + if (c.isFunction(a)) + return this.each(function (b) { + c(this).wrapInner(a.call(this, b)); + }); + return this.each(function () { + var b = c(this), + d = b.contents(); + d.length ? d.wrapAll(a) : b.append(a); + }); + }, + wrap: function (a) { + return this.each(function () { + c(this).wrapAll(a); + }); + }, + unwrap: function () { + return this.parent() + .each(function () { + c.nodeName(this, "body") || c(this).replaceWith(this.childNodes); + }) + .end(); + }, + append: function () { + return this.domManip(arguments, true, function (a) { + this.nodeType === 1 && this.appendChild(a); + }); + }, + prepend: function () { + return this.domManip(arguments, true, function (a) { + this.nodeType === 1 && this.insertBefore(a, this.firstChild); + }); + }, + before: function () { + if (this[0] && this[0].parentNode) + return this.domManip(arguments, false, function (b) { + this.parentNode.insertBefore(b, this); + }); + else if (arguments.length) { + var a = c(arguments[0]); + a.push.apply(a, this.toArray()); + return this.pushStack(a, "before", arguments); + } + }, + after: function () { + if (this[0] && this[0].parentNode) + return this.domManip(arguments, false, function (b) { + this.parentNode.insertBefore(b, this.nextSibling); + }); + else if (arguments.length) { + var a = this.pushStack(this, "after", arguments); + a.push.apply(a, c(arguments[0]).toArray()); + return a; + } + }, + remove: function (a, b) { + for (var d = 0, f; (f = this[d]) != null; d++) + if (!a || c.filter(a, [f]).length) { + if (!b && f.nodeType === 1) { + c.cleanData(f.getElementsByTagName("*")); + c.cleanData([f]); + } + f.parentNode && f.parentNode.removeChild(f); + } + return this; + }, + empty: function () { + for (var a = 0, b; (b = this[a]) != null; a++) + for ( + b.nodeType === 1 && c.cleanData(b.getElementsByTagName("*")); + b.firstChild; + + ) + b.removeChild(b.firstChild); + return this; + }, + clone: function (a) { + var b = this.map(function () { + if (!c.support.noCloneEvent && !c.isXMLDoc(this)) { + var d = this.outerHTML, + f = this.ownerDocument; + if (!d) { + d = f.createElement("div"); + d.appendChild(this.cloneNode(true)); + d = d.innerHTML; + } + return c.clean( + [ + d + .replace(Ja, "") + .replace(/[=]([^="'>\s]+\/)>/g, '="$1">') + .replace(V, ""), + ], + f + )[0]; + } return this.cloneNode(true); + }); + if (a === true) { + ra(this, b); + ra(this.find("*"), b.find("*")); + } + return b; + }, + html: function (a) { + if (a === w) + return this[0] && this[0].nodeType === 1 + ? this[0].innerHTML.replace(Ja, "") + : null; + else if ( + typeof a === "string" && + !ta.test(a) && + (c.support.leadingWhitespace || !V.test(a)) && + !F[(La.exec(a) || ["", ""])[1].toLowerCase()] + ) { + a = a.replace(Ka, Ma); + try { + for (var b = 0, d = this.length; b < d; b++) + if (this[b].nodeType === 1) { + c.cleanData(this[b].getElementsByTagName("*")); + this[b].innerHTML = a; + } + } catch (f) { + this.empty().append(a); + } + } else + c.isFunction(a) + ? this.each(function (e) { + var j = c(this), + i = j.html(); + j.empty().append(function () { + return a.call(this, e, i); + }); + }) + : this.empty().append(a); + return this; + }, + replaceWith: function (a) { + if (this[0] && this[0].parentNode) { + if (c.isFunction(a)) + return this.each(function (b) { + var d = c(this), + f = d.html(); + d.replaceWith(a.call(this, b, f)); + }); + if (typeof a !== "string") a = c(a).detach(); + return this.each(function () { + var b = this.nextSibling, + d = this.parentNode; + c(this).remove(); + b ? c(b).before(a) : c(d).append(a); + }); + } return this.pushStack(c(c.isFunction(a) ? a() : a), "replaceWith", a); + }, + detach: function (a) { + return this.remove(a, true); + }, + domManip: function (a, b, d) { + function f(u) { + return c.nodeName(u, "table") + ? u.getElementsByTagName("tbody")[0] || + u.appendChild(u.ownerDocument.createElement("tbody")) + : u; + } + var e, + j, + i = a[0], + o = [], + k; + if ( + !c.support.checkClone && + arguments.length === 3 && + typeof i === "string" && + ua.test(i) + ) + return this.each(function () { + c(this).domManip(a, b, d, true); + }); + if (c.isFunction(i)) + return this.each(function (u) { + var z = c(this); + a[0] = i.call(this, u, b ? z.html() : w); + z.domManip(a, b, d); + }); + if (this[0]) { + e = i && i.parentNode; + e = + c.support.parentNode && + e && + e.nodeType === 11 && + e.childNodes.length === this.length + ? {fragment: e} + : sa(a, this, o); + k = e.fragment; + if ( + (j = k.childNodes.length === 1 ? (k = k.firstChild) : k.firstChild) + ) { + b = b && c.nodeName(j, "tr"); + for (var n = 0, r = this.length; n < r; n++) + d.call( + b ? f(this[n], j) : this[n], + n > 0 || e.cacheable || this.length > 1 + ? k.cloneNode(true) + : k + ); + } + o.length && c.each(o, Qa); + } + return this; + }, + }); + c.fragments = {}; + c.each( + { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith", + }, + function (a, b) { + c.fn[a] = function (d) { + var f = []; + d = c(d); + var e = this.length === 1 && this[0].parentNode; + if ( + e && + e.nodeType === 11 && + e.childNodes.length === 1 && + d.length === 1 + ) { + d[b](this[0]); + return this; + } + e = 0; + for (var j = d.length; e < j; e++) { + var i = (e > 0 ? this.clone(true) : this).get(); + c.fn[b].apply(c(d[e]), i); + f = f.concat(i); + } + return this.pushStack(f, a, d.selector); + + }; + } + ); + c.extend({ + clean: function (a, b, d, f) { + b = b || s; + if (typeof b.createElement === "undefined") + b = b.ownerDocument || (b[0] && b[0].ownerDocument) || s; + for (var e = [], j = 0, i; (i = a[j]) != null; j++) { + if (typeof i === "number") i = String(i); + if (i) { + if (typeof i === "string" && !jb.test(i)) i = b.createTextNode(i); + else if (typeof i === "string") { + i = i.replace(Ka, Ma); + var o = (La.exec(i) || ["", ""])[1].toLowerCase(), + k = F[o] || F._default, + n = k[0], + r = b.createElement("div"); + for (r.innerHTML = k[1] + i + k[2]; n--; ) r = r.lastChild; + if (!c.support.tbody) { + n = ib.test(i); + o = + o === "table" && !n + ? r.firstChild && r.firstChild.childNodes + : k[1] === "" && !n + ? r.childNodes + : []; + for (k = o.length - 1; k >= 0; --k) + c.nodeName(o[k], "tbody") && + !o[k].childNodes.length && + o[k].parentNode.removeChild(o[k]); + } + !c.support.leadingWhitespace && + V.test(i) && + r.insertBefore( + b.createTextNode(V.exec(i)[0]), + r.firstChild + ); + i = r.childNodes; + } + if (i.nodeType) e.push(i); + else e = c.merge(e, i); + } + } + if (d) + for (j = 0; e[j]; j++) + if ( + f && + c.nodeName(e[j], "script") && + (!e[j].type || e[j].type.toLowerCase() === "text/javascript") + ) + f.push( + e[j].parentNode ? e[j].parentNode.removeChild(e[j]) : e[j] + ); + else { + e[j].nodeType === 1 && + e.splice.apply( + e, + [j + 1, 0].concat( + c.makeArray(e[j].getElementsByTagName("script")) + ) + ); + d.appendChild(e[j]); + } + return e; + }, + cleanData: function (a) { + for ( + var b, + d, + f = c.cache, + e = c.event.special, + j = c.support.deleteExpando, + i = 0, + o; + (o = a[i]) != null; + i++ + ) + if ((d = o[c.expando])) { + b = f[d]; + if (b.events) + for (var k in b.events) + e[k] ? c.event.remove(o, k) : Ca(o, k, b.handle); + if (j) delete o[c.expando]; + else o.removeAttribute && o.removeAttribute(c.expando); + delete f[d]; + } + }, + }); + var kb = /z-?index|font-?weight|opacity|zoom|line-?height/i, + Na = /alpha\([^)]*\)/, + Oa = /opacity=([^)]*)/, + ha = /float/i, + ia = /-([a-z])/gi, + lb = /([A-Z])/g, + mb = /^-?\d+(?:px)?$/i, + nb = /^-?\d/, + ob = {position: "absolute", visibility: "hidden", display: "block"}, + pb = ["Left", "Right"], + qb = ["Top", "Bottom"], + rb = s.defaultView && s.defaultView.getComputedStyle, + Pa = c.support.cssFloat ? "cssFloat" : "styleFloat", + ja = function (a, b) { + return b.toUpperCase(); + }; + c.fn.css = function (a, b) { + return X(this, a, b, true, function (d, f, e) { + if (e === w) return c.curCSS(d, f); + if (typeof e === "number" && !kb.test(f)) e += "px"; + c.style(d, f, e); + }); + }; + c.extend({ + style: function (a, b, d) { + if (!a || a.nodeType === 3 || a.nodeType === 8) return w; + if ((b === "width" || b === "height") && parseFloat(d) < 0) d = w; + var f = a.style || a, + e = d !== w; + if (!c.support.opacity && b === "opacity") { + if (e) { + f.zoom = 1; + b = + String(parseInt(d, 10)) === "NaN" + ? "" + : "alpha(opacity=" + d * 100 + ")"; + a = f.filter || c.curCSS(a, "filter") || ""; + f.filter = Na.test(a) ? a.replace(Na, b) : b; + } + return f.filter && f.filter.indexOf("opacity=") >= 0 + ? String(parseFloat(Oa.exec(f.filter)[1]) / 100) + : ""; + } + if (ha.test(b)) b = Pa; + b = b.replace(ia, ja); + if (e) f[b] = d; + return f[b]; + }, + css: function (a, b, d, f) { + if (b === "width" || b === "height") { + var e, + j = b === "width" ? pb : qb; + function i() { + e = b === "width" ? a.offsetWidth : a.offsetHeight; + f !== "border" && + c.each(j, function () { + f || + (e -= + parseFloat(c.curCSS(a, "padding" + this, true)) || + 0); + if (f === "margin") + e += + parseFloat(c.curCSS(a, "margin" + this, true)) || 0; + else + e -= + parseFloat( + c.curCSS(a, "border" + this + "Width", true) + ) || 0; + }); + } + a.offsetWidth !== 0 ? i() : c.swap(a, ob, i); + return Math.max(0, Math.round(e)); + } + return c.curCSS(a, b, d); + }, + curCSS: function (a, b, d) { + var f, + e = a.style; + if (!c.support.opacity && b === "opacity" && a.currentStyle) { + f = Oa.test(a.currentStyle.filter || "") + ? String(parseFloat(RegExp.$1) / 100) + : ""; + return f === "" ? "1" : f; + } + if (ha.test(b)) b = Pa; + if (!d && e && e[b]) f = e[b]; + else if (rb) { + if (ha.test(b)) b = "float"; + b = b.replace(lb, "-$1").toLowerCase(); + e = a.ownerDocument.defaultView; + if (!e) return null; + if ((a = e.getComputedStyle(a, null))) f = a.getPropertyValue(b); + if (b === "opacity" && f === "") f = "1"; + } else if (a.currentStyle) { + d = b.replace(ia, ja); + f = a.currentStyle[b] || a.currentStyle[d]; + if (!mb.test(f) && nb.test(f)) { + b = e.left; + var j = a.runtimeStyle.left; + a.runtimeStyle.left = a.currentStyle.left; + e.left = d === "fontSize" ? "1em" : f || 0; + f = e.pixelLeft + "px"; + e.left = b; + a.runtimeStyle.left = j; + } + } + return f; + }, + swap: function (a, b, d) { + var f = {}; + for (var e in b) { + f[e] = a.style[e]; + a.style[e] = b[e]; + } + d.call(a); + for (e in b) a.style[e] = f[e]; + }, + }); + if (c.expr && c.expr.filters) { + c.expr.filters.hidden = function (a) { + var b = a.offsetWidth, + d = a.offsetHeight, + f = a.nodeName.toLowerCase() === "tr"; + return b === 0 && d === 0 && !f + ? true + : b > 0 && d > 0 && !f + ? false + : c.curCSS(a, "display") === "none"; + }; + c.expr.filters.visible = function (a) { + return !c.expr.filters.hidden(a); + }; + } + var sb = J(), + tb = //gi, + ub = /select|textarea/i, + vb = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, + N = /[=]\?(&|$)/, + ka = /\?/, + wb = /(\?|&)_=.*?(&|$)/, + xb = /^(\w+:)?\/\/([^\/?#]+)/, + yb = /%20/g, + zb = c.fn.load; + c.fn.extend({ + load: function (a, b, d) { + if (typeof a !== "string") return zb.call(this, a); + else if (!this.length) return this; + var f = a.indexOf(" "); + if (f >= 0) { + var e = a.slice(f, a.length); + a = a.slice(0, f); + } + f = "GET"; + if (b) + if (c.isFunction(b)) { + d = b; + b = null; + } else if (typeof b === "object") { + b = c.param(b, c.ajaxSettings.traditional); + f = "POST"; + } + var j = this; + c.ajax({ + url: a, + type: f, + dataType: "html", + data: b, + complete: function (i, o) { + if (o === "success" || o === "notmodified") + j.html( + e + ? c("
") + .append(i.responseText.replace(tb, "")) + .find(e) + : i.responseText + ); + d && j.each(d, [i.responseText, o, i]); + }, + }); + return this; + }, + serialize: function () { + return c.param(this.serializeArray()); + }, + serializeArray: function () { + return this.map(function () { + return this.elements ? c.makeArray(this.elements) : this; + }) + .filter(function () { + return ( + this.name && + !this.disabled && + (this.checked || ub.test(this.nodeName) || vb.test(this.type)) + ); + }) + .map(function (a, b) { + a = c(this).val(); + return a == null + ? null + : c.isArray(a) + ? c.map(a, function (d) { + return {name: b.name, value: d}; + }) + : {name: b.name, value: a}; + }) + .get(); + }, + }); + c.each( + "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), + function (a, b) { + c.fn[b] = function (d) { + return this.bind(b, d); + }; + } + ); + c.extend({ + get: function (a, b, d, f) { + if (c.isFunction(b)) { + f = f || d; + d = b; + b = null; + } + return c.ajax({type: "GET", url: a, data: b, success: d, dataType: f}); + }, + getScript: function (a, b) { + return c.get(a, null, b, "script"); + }, + getJSON: function (a, b, d) { + return c.get(a, b, d, "json"); + }, + post: function (a, b, d, f) { + if (c.isFunction(b)) { + f = f || d; + d = b; + b = {}; + } + return c.ajax({type: "POST", url: a, data: b, success: d, dataType: f}); + }, + ajaxSetup: function (a) { + c.extend(c.ajaxSettings, a); + }, + ajaxSettings: { + url: location.href, + global: true, + type: "GET", + contentType: "application/x-www-form-urlencoded", + processData: true, + async: true, + xhr: + A.XMLHttpRequest && + (A.location.protocol !== "file:" || !A.ActiveXObject) + ? function () { + return new A.XMLHttpRequest(); + } + : function () { + try { + return new A.ActiveXObject("Microsoft.XMLHTTP"); + } catch (a) {} + }, + accepts: { + xml: "application/xml, text/xml", + html: "text/html", + script: "text/javascript, application/javascript", + json: "application/json, text/javascript", + text: "text/plain", + _default: "*/*", + }, + }, + lastModified: {}, + etag: {}, + ajax: function (a) { + function b() { + e.success && e.success.call(k, o, i, x); + e.global && f("ajaxSuccess", [x, e]); + } + function d() { + e.complete && e.complete.call(k, x, i); + e.global && f("ajaxComplete", [x, e]); + e.global && !--c.active && c.event.trigger("ajaxStop"); + } + function f(q, p) { + (e.context ? c(e.context) : c.event).trigger(q, p); + } + var e = c.extend(true, {}, c.ajaxSettings, a), + j, + i, + o, + k = (a && a.context) || e, + n = e.type.toUpperCase(); + if (e.data && e.processData && typeof e.data !== "string") + e.data = c.param(e.data, e.traditional); + if (e.dataType === "jsonp") { + if (n === "GET") + N.test(e.url) || + (e.url += + (ka.test(e.url) ? "&" : "?") + + (e.jsonp || "callback") + + "=?"); + else if (!e.data || !N.test(e.data)) + e.data = + (e.data ? e.data + "&" : "") + (e.jsonp || "callback") + "=?"; + e.dataType = "json"; + } + if ( + e.dataType === "json" && + ((e.data && N.test(e.data)) || N.test(e.url)) + ) { + j = e.jsonpCallback || "jsonp" + sb++; + if (e.data) e.data = (String(e.data)).replace(N, "=" + j + "$1"); + e.url = e.url.replace(N, "=" + j + "$1"); + e.dataType = "script"; + A[j] = + A[j] || + function (q) { + o = q; + b(); + d(); + A[j] = w; + try { + delete A[j]; + } catch (p) {} + z && z.removeChild(C); + }; + } + if (e.dataType === "script" && e.cache === null) e.cache = false; + if (e.cache === false && n === "GET") { + var r = J(), + u = e.url.replace(wb, "$1_=" + r + "$2"); + e.url = + u + (u === e.url ? (ka.test(e.url) ? "&" : "?") + "_=" + r : ""); + } + if (e.data && n === "GET") e.url += (ka.test(e.url) ? "&" : "?") + e.data; + e.global && !c.active++ && c.event.trigger("ajaxStart"); + r = + (r = xb.exec(e.url)) && + ((r[1] && r[1] !== location.protocol) || r[2] !== location.host); + if (e.dataType === "script" && n === "GET" && r) { + var z = s.getElementsByTagName("head")[0] || s.documentElement, + C = s.createElement("script"); + C.src = e.url; + if (e.scriptCharset) C.charset = e.scriptCharset; + if (!j) { + var B = false; + C.onload = C.onreadystatechange = function () { + if ( + !B && + (!this.readyState || + this.readyState === "loaded" || + this.readyState === "complete") + ) { + B = true; + b(); + d(); + C.onload = C.onreadystatechange = null; + z && C.parentNode && z.removeChild(C); + } + }; + } + z.insertBefore(C, z.firstChild); + return w; + } + var E = false, + x = e.xhr(); + if (x) { + e.username + ? x.open(n, e.url, e.async, e.username, e.password) + : x.open(n, e.url, e.async); + try { + if (e.data || (a && a.contentType)) + x.setRequestHeader("Content-Type", e.contentType); + if (e.ifModified) { + c.lastModified[e.url] && + x.setRequestHeader( + "If-Modified-Since", + c.lastModified[e.url] + ); + c.etag[e.url] && + x.setRequestHeader("If-None-Match", c.etag[e.url]); + } + r || x.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + x.setRequestHeader( + "Accept", + e.dataType && e.accepts[e.dataType] + ? e.accepts[e.dataType] + ", */*" + : e.accepts._default + ); + } catch (ga) {} + if (e.beforeSend && e.beforeSend.call(k, x, e) === false) { + e.global && !--c.active && c.event.trigger("ajaxStop"); + x.abort(); + return false; + } + e.global && f("ajaxSend", [x, e]); + var g = (x.onreadystatechange = function (q) { + if (!x || x.readyState === 0 || q === "abort") { + E || d(); + E = true; + if (x) x.onreadystatechange = c.noop; + } else if (!E && x && (x.readyState === 4 || q === "timeout")) { + E = true; + x.onreadystatechange = c.noop; + i = + q === "timeout" + ? "timeout" + : !c.httpSuccess(x) + ? "error" + : e.ifModified && c.httpNotModified(x, e.url) + ? "notmodified" + : "success"; + var p; + if (i === "success") + try { + o = c.httpData(x, e.dataType, e); + } catch (v) { + i = "parsererror"; + p = v; + } + if (i === "success" || i === "notmodified") j || b(); + else c.handleError(e, x, i, p); + d(); + q === "timeout" && x.abort(); + if (e.async) x = null; + } + }); + try { + var h = x.abort; + x.abort = function () { + x && h.call(x); + g("abort"); + }; + } catch (l) {} + e.async && + e.timeout > 0 && + setTimeout(function () { + x && !E && g("timeout"); + }, e.timeout); + try { + x.send( + n === "POST" || n === "PUT" || n === "DELETE" ? e.data : null + ); + } catch (m) { + c.handleError(e, x, null, m); + d(); + } + e.async || g(); + return x; + } + }, + handleError: function (a, b, d, f) { + if (a.error) a.error.call(a.context || a, b, d, f); + if (a.global) + (a.context ? c(a.context) : c.event).trigger("ajaxError", [b, a, f]); + }, + active: 0, + httpSuccess: function (a) { + try { + return ( + (!a.status && location.protocol === "file:") || + (a.status >= 200 && a.status < 300) || + a.status === 304 || + a.status === 1223 || + a.status === 0 + ); + } catch (b) {} + return false; + }, + httpNotModified: function (a, b) { + var d = a.getResponseHeader("Last-Modified"), + f = a.getResponseHeader("Etag"); + if (d) c.lastModified[b] = d; + if (f) c.etag[b] = f; + return a.status === 304 || a.status === 0; + }, + httpData: function (a, b, d) { + var f = a.getResponseHeader("content-type") || "", + e = b === "xml" || (!b && f.indexOf("xml") >= 0); + a = e ? a.responseXML : a.responseText; + e && a.documentElement.nodeName === "parsererror" && c.error("parsererror"); + if (d && d.dataFilter) a = d.dataFilter(a, b); + if (typeof a === "string") + if (b === "json" || (!b && f.indexOf("json") >= 0)) a = c.parseJSON(a); + else if (b === "script" || (!b && f.indexOf("javascript") >= 0)) + c.globalEval(a); + return a; + }, + param: function (a, b) { + function d(i, o) { + if (c.isArray(o)) + c.each(o, function (k, n) { + b || /\[\]$/.test(i) + ? f(i, n) + : d( + i + + "[" + + (typeof n === "object" || c.isArray(n) ? k : "") + + "]", + n + ); + }); + else + !b && o != null && typeof o === "object" + ? c.each(o, function (k, n) { + d(i + "[" + k + "]", n); + }) + : f(i, o); + } + function f(i, o) { + o = c.isFunction(o) ? o() : o; + e[e.length] = encodeURIComponent(i) + "=" + encodeURIComponent(o); + } + var e = []; + if (b === w) b = c.ajaxSettings.traditional; + if (c.isArray(a) || a.jquery) + c.each(a, function () { + f(this.name, this.value); + }); + else for (var j in a) d(j, a[j]); + return e.join("&").replace(yb, "+"); + }, + }); + var la = {}, + Ab = /toggle|show|hide/, + Bb = /^([+-]=)?([\d+-.]+)(.*)$/, + W, + va = [ + ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], + ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], + ["opacity"], + ]; + c.fn.extend({ + show: function (a, b) { + if (a || a === 0) return this.animate(K("show", 3), a, b); + + a = 0; + for (b = this.length; a < b; a++) { + var d = c.data(this[a], "olddisplay"); + this[a].style.display = d || ""; + if (c.css(this[a], "display") === "none") { + d = this[a].nodeName; + var f; + if (la[d]) f = la[d]; + else { + var e = c("<" + d + " />").appendTo("body"); + f = e.css("display"); + if (f === "none") f = "block"; + e.remove(); + la[d] = f; + } + c.data(this[a], "olddisplay", f); + } + } + a = 0; + for (b = this.length; a < b; a++) + this[a].style.display = c.data(this[a], "olddisplay") || ""; + return this; + + }, + hide: function (a, b) { + if (a || a === 0) return this.animate(K("hide", 3), a, b); + + a = 0; + for (b = this.length; a < b; a++) { + var d = c.data(this[a], "olddisplay"); + !d && + d !== "none" && + c.data(this[a], "olddisplay", c.css(this[a], "display")); + } + a = 0; + for (b = this.length; a < b; a++) this[a].style.display = "none"; + return this; + + }, + _toggle: c.fn.toggle, + toggle: function (a, b) { + var d = typeof a === "boolean"; + if (c.isFunction(a) && c.isFunction(b)) this._toggle.apply(this, arguments); + else + a == null || d + ? this.each(function () { + var f = d ? a : c(this).is(":hidden"); + c(this)[f ? "show" : "hide"](); + }) + : this.animate(K("toggle", 3), a, b); + return this; + }, + fadeTo: function (a, b, d) { + return this.filter(":hidden") + .css("opacity", 0) + .show() + .end() + .animate({opacity: b}, a, d); + }, + animate: function (a, b, d, f) { + var e = c.speed(b, d, f); + if (c.isEmptyObject(a)) return this.each(e.complete); + return this[e.queue === false ? "each" : "queue"](function () { + var j = c.extend({}, e), + i, + o = this.nodeType === 1 && c(this).is(":hidden"), + k = this; + for (i in a) { + var n = i.replace(ia, ja); + if (i !== n) { + a[n] = a[i]; + delete a[i]; + i = n; + } + if ((a[i] === "hide" && o) || (a[i] === "show" && !o)) + return j.complete.call(this); + if ((i === "height" || i === "width") && this.style) { + j.display = c.css(this, "display"); + j.overflow = this.style.overflow; + } + if (c.isArray(a[i])) { + (j.specialEasing = j.specialEasing || {})[i] = a[i][1]; + a[i] = a[i][0]; + } + } + if (j.overflow != null) this.style.overflow = "hidden"; + j.curAnim = c.extend({}, a); + c.each(a, function (r, u) { + var z = new c.fx(k, j, r); + if (Ab.test(u)) z[u === "toggle" ? (o ? "show" : "hide") : u](a); + else { + var C = Bb.exec(u), + B = z.cur(true) || 0; + if (C) { + u = parseFloat(C[2]); + var E = C[3] || "px"; + if (E !== "px") { + k.style[r] = (u || 1) + E; + B = ((u || 1) / z.cur(true)) * B; + k.style[r] = B + E; + } + if (C[1]) u = (C[1] === "-=" ? -1 : 1) * u + B; + z.custom(B, u, E); + } else z.custom(B, u, ""); + } + }); + return true; + }); + }, + stop: function (a, b) { + var d = c.timers; + a && this.queue([]); + this.each(function () { + for (var f = d.length - 1; f >= 0; f--) + if (d[f].elem === this) { + b && d[f](true); + d.splice(f, 1); + } + }); + b || this.dequeue(); + return this; + }, + }); + c.each( + { + slideDown: K("show", 1), + slideUp: K("hide", 1), + slideToggle: K("toggle", 1), + fadeIn: {opacity: "show"}, + fadeOut: {opacity: "hide"}, + }, + function (a, b) { + c.fn[a] = function (d, f) { + return this.animate(b, d, f); + }; + } + ); + c.extend({ + speed: function (a, b, d) { + var f = + a && typeof a === "object" + ? a + : { + complete: d || (!d && b) || (c.isFunction(a) && a), + duration: a, + easing: (d && b) || (b && !c.isFunction(b) && b), + }; + f.duration = c.fx.off + ? 0 + : typeof f.duration === "number" + ? f.duration + : c.fx.speeds[f.duration] || c.fx.speeds._default; + f.old = f.complete; + f.complete = function () { + f.queue !== false && c(this).dequeue(); + c.isFunction(f.old) && f.old.call(this); + }; + return f; + }, + easing: { + linear: function (a, b, d, f) { + return d + f * a; + }, + swing: function (a, b, d, f) { + return (-Math.cos(a * Math.PI) / 2 + 0.5) * f + d; + }, + }, + timers: [], + fx: function (a, b, d) { + this.options = b; + this.elem = a; + this.prop = d; + if (!b.orig) b.orig = {}; + }, + }); + c.fx.prototype = { + update: function () { + this.options.step && this.options.step.call(this.elem, this.now, this); + (c.fx.step[this.prop] || c.fx.step._default)(this); + if ((this.prop === "height" || this.prop === "width") && this.elem.style) + this.elem.style.display = "block"; + }, + cur: function (a) { + if ( + this.elem[this.prop] != null && + (!this.elem.style || this.elem.style[this.prop] == null) + ) + return this.elem[this.prop]; + return (a = parseFloat(c.css(this.elem, this.prop, a))) && a > -10000 + ? a + : parseFloat(c.curCSS(this.elem, this.prop)) || 0; + }, + custom: function (a, b, d) { + function f(j) { + return e.step(j); + } + this.startTime = J(); + this.start = a; + this.end = b; + this.unit = d || this.unit || "px"; + this.now = this.start; + this.pos = this.state = 0; + var e = this; + f.elem = this.elem; + if (f() && c.timers.push(f) && !W) W = setInterval(c.fx.tick, 13); + }, + show: function () { + this.options.orig[this.prop] = c.style(this.elem, this.prop); + this.options.show = true; + this.custom( + this.prop === "width" || this.prop === "height" ? 1 : 0, + this.cur() + ); + c(this.elem).show(); + }, + hide: function () { + this.options.orig[this.prop] = c.style(this.elem, this.prop); + this.options.hide = true; + this.custom(this.cur(), 0); + }, + step: function (a) { + var b = J(), + d = true; + if (a || b >= this.options.duration + this.startTime) { + this.now = this.end; + this.pos = this.state = 1; + this.update(); + this.options.curAnim[this.prop] = true; + for (var f in this.options.curAnim) + if (this.options.curAnim[f] !== true) d = false; + if (d) { + if (this.options.display != null) { + this.elem.style.overflow = this.options.overflow; + a = c.data(this.elem, "olddisplay"); + this.elem.style.display = a ? a : this.options.display; + if (c.css(this.elem, "display") === "none") + this.elem.style.display = "block"; + } + this.options.hide && c(this.elem).hide(); + if (this.options.hide || this.options.show) + for (var e in this.options.curAnim) + c.style(this.elem, e, this.options.orig[e]); + this.options.complete.call(this.elem); + } + return false; + } + e = b - this.startTime; + this.state = e / this.options.duration; + a = this.options.easing || (c.easing.swing ? "swing" : "linear"); + this.pos = c.easing[ + (this.options.specialEasing && + this.options.specialEasing[this.prop]) || + a + ](this.state, e, 0, 1, this.options.duration); + this.now = this.start + (this.end - this.start) * this.pos; + this.update(); + + return true; + }, + }; + c.extend(c.fx, { + tick: function () { + for (var a = c.timers, b = 0; b < a.length; b++) a[b]() || a.splice(b--, 1); + a.length || c.fx.stop(); + }, + stop: function () { + clearInterval(W); + W = null; + }, + speeds: {slow: 600, fast: 200, _default: 400}, + step: { + opacity: function (a) { + c.style(a.elem, "opacity", a.now); + }, + _default: function (a) { + if (a.elem.style && a.elem.style[a.prop] != null) + a.elem.style[a.prop] = + (a.prop === "width" || a.prop === "height" + ? Math.max(0, a.now) + : a.now) + a.unit; + else a.elem[a.prop] = a.now; + }, + }, + }); + if (c.expr && c.expr.filters) + c.expr.filters.animated = function (a) { + return c.grep(c.timers, function (b) { + return a === b.elem; + }).length; + }; + c.fn.offset = + "getBoundingClientRect" in s.documentElement + ? function (a) { + var b = this[0]; + if (a) + return this.each(function (e) { + c.offset.setOffset(this, a, e); + }); + if (!b || !b.ownerDocument) return null; + if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); + var d = b.getBoundingClientRect(), + f = b.ownerDocument; + b = f.body; + f = f.documentElement; + return { + top: + d.top + + (self.pageYOffset || + (c.support.boxModel && f.scrollTop) || + b.scrollTop) - + (f.clientTop || b.clientTop || 0), + left: + d.left + + (self.pageXOffset || + (c.support.boxModel && f.scrollLeft) || + b.scrollLeft) - + (f.clientLeft || b.clientLeft || 0), + }; + } + : function (a) { + var b = this[0]; + if (a) + return this.each(function (r) { + c.offset.setOffset(this, a, r); + }); + if (!b || !b.ownerDocument) return null; + if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); + c.offset.initialize(); + var d = b.offsetParent, + f = b, + e = b.ownerDocument, + j, + i = e.documentElement, + o = e.body; + f = (e = e.defaultView) + ? e.getComputedStyle(b, null) + : b.currentStyle; + for ( + var k = b.offsetTop, n = b.offsetLeft; + (b = b.parentNode) && b !== o && b !== i; + + ) { + if (c.offset.supportsFixedPosition && f.position === "fixed") + break; + j = e ? e.getComputedStyle(b, null) : b.currentStyle; + k -= b.scrollTop; + n -= b.scrollLeft; + if (b === d) { + k += b.offsetTop; + n += b.offsetLeft; + if ( + c.offset.doesNotAddBorder && + !( + c.offset.doesAddBorderForTableAndCells && + /^t(able|d|h)$/i.test(b.nodeName) + ) + ) { + k += parseFloat(j.borderTopWidth) || 0; + n += parseFloat(j.borderLeftWidth) || 0; + } + f = d; + d = b.offsetParent; + } + if ( + c.offset.subtractsBorderForOverflowNotVisible && + j.overflow !== "visible" + ) { + k += parseFloat(j.borderTopWidth) || 0; + n += parseFloat(j.borderLeftWidth) || 0; + } + f = j; + } + if (f.position === "relative" || f.position === "static") { + k += o.offsetTop; + n += o.offsetLeft; + } + if (c.offset.supportsFixedPosition && f.position === "fixed") { + k += Math.max(i.scrollTop, o.scrollTop); + n += Math.max(i.scrollLeft, o.scrollLeft); + } + return {top: k, left: n}; + }; + c.offset = { + initialize: function () { + var a = s.body, + b = s.createElement("div"), + d, + f, + e, + j = parseFloat(c.curCSS(a, "marginTop", true)) || 0; + c.extend(b.style, { + position: "absolute", + top: 0, + left: 0, + margin: 0, + border: 0, + width: "1px", + height: "1px", + visibility: "hidden", + }); + b.innerHTML = + "
"; + a.insertBefore(b, a.firstChild); + d = b.firstChild; + f = d.firstChild; + e = d.nextSibling.firstChild.firstChild; + this.doesNotAddBorder = f.offsetTop !== 5; + this.doesAddBorderForTableAndCells = e.offsetTop === 5; + f.style.position = "fixed"; + f.style.top = "20px"; + this.supportsFixedPosition = f.offsetTop === 20 || f.offsetTop === 15; + f.style.position = f.style.top = ""; + d.style.overflow = "hidden"; + d.style.position = "relative"; + this.subtractsBorderForOverflowNotVisible = f.offsetTop === -5; + this.doesNotIncludeMarginInBodyOffset = a.offsetTop !== j; + a.removeChild(b); + c.offset.initialize = c.noop; + }, + bodyOffset: function (a) { + var b = a.offsetTop, + d = a.offsetLeft; + c.offset.initialize(); + if (c.offset.doesNotIncludeMarginInBodyOffset) { + b += parseFloat(c.curCSS(a, "marginTop", true)) || 0; + d += parseFloat(c.curCSS(a, "marginLeft", true)) || 0; + } + return {top: b, left: d}; + }, + setOffset: function (a, b, d) { + if (/static/.test(c.curCSS(a, "position"))) a.style.position = "relative"; + var f = c(a), + e = f.offset(), + j = parseInt(c.curCSS(a, "top", true), 10) || 0, + i = parseInt(c.curCSS(a, "left", true), 10) || 0; + if (c.isFunction(b)) b = b.call(a, d, e); + d = {top: b.top - e.top + j, left: b.left - e.left + i}; + "using" in b ? b.using.call(a, d) : f.css(d); + }, + }; + c.fn.extend({ + position: function () { + if (!this[0]) return null; + var a = this[0], + b = this.offsetParent(), + d = this.offset(), + f = /^body|html$/i.test(b[0].nodeName) ? {top: 0, left: 0} : b.offset(); + d.top -= parseFloat(c.curCSS(a, "marginTop", true)) || 0; + d.left -= parseFloat(c.curCSS(a, "marginLeft", true)) || 0; + f.top += parseFloat(c.curCSS(b[0], "borderTopWidth", true)) || 0; + f.left += parseFloat(c.curCSS(b[0], "borderLeftWidth", true)) || 0; + return {top: d.top - f.top, left: d.left - f.left}; + }, + offsetParent: function () { + return this.map(function () { + for ( + var a = this.offsetParent || s.body; + a && + !/^body|html$/i.test(a.nodeName) && + c.css(a, "position") === "static"; + + ) + a = a.offsetParent; + return a; + }); + }, + }); + c.each(["Left", "Top"], function (a, b) { + var d = "scroll" + b; + c.fn[d] = function (f) { + var e = this[0], + j; + if (!e) return null; + if (f !== w) + return this.each(function () { + if ((j = wa(this))) + j.scrollTo( + !a ? f : c(j).scrollLeft(), + a ? f : c(j).scrollTop() + ); + else this[d] = f; + }); + return (j = wa(e)) + ? "pageXOffset" in j + ? j[a ? "pageYOffset" : "pageXOffset"] + : (c.support.boxModel && j.document.documentElement[d]) || + j.document.body[d] + : e[d]; + }; + }); + c.each(["Height", "Width"], function (a, b) { + var d = b.toLowerCase(); + c.fn["inner" + b] = function () { + return this[0] ? c.css(this[0], d, false, "padding") : null; + }; + c.fn["outer" + b] = function (f) { + return this[0] ? c.css(this[0], d, false, f ? "margin" : "border") : null; + }; + c.fn[d] = function (f) { + var e = this[0]; + if (!e) return f == null ? null : this; + if (c.isFunction(f)) + return this.each(function (j) { + var i = c(this); + i[d](f.call(this, j, i[d]())); + }); + return "scrollTo" in e && e.document + ? (e.document.compatMode === "CSS1Compat" && + e.document.documentElement["client" + b]) || + e.document.body["client" + b] + : e.nodeType === 9 + ? Math.max( + e.documentElement["client" + b], + e.body["scroll" + b], + e.documentElement["scroll" + b], + e.body["offset" + b], + e.documentElement["offset" + b] + ) + : f === w + ? c.css(e, d) + : this.css(d, typeof f === "string" ? f : f + "px"); + }; + }); + A.jQuery = A.$ = c; +})(window); diff --git a/base_geoengine/doc/build/_static/minus.png b/base_geoengine/doc/build/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/base_geoengine/doc/build/_static/pygments.css b/base_geoengine/doc/build/_static/pygments.css new file mode 100644 index 000000000..f18839dfa --- /dev/null +++ b/base_geoengine/doc/build/_static/pygments.css @@ -0,0 +1,208 @@ +.highlight .hll { + background-color: #ffffcc; +} +.highlight { + background: #eeffcc; +} +.highlight .c { + color: #408090; + font-style: italic; +} /* Comment */ +.highlight .err { + border: 1px solid #ff0000; +} /* Error */ +.highlight .k { + color: #007020; + font-weight: bold; +} /* Keyword */ +.highlight .o { + color: #666666; +} /* Operator */ +.highlight .cm { + color: #408090; + font-style: italic; +} /* Comment.Multiline */ +.highlight .cp { + color: #007020; +} /* Comment.Preproc */ +.highlight .c1 { + color: #408090; + font-style: italic; +} /* Comment.Single */ +.highlight .cs { + color: #408090; + background-color: #fff0f0; +} /* Comment.Special */ +.highlight .gd { + color: #a00000; +} /* Generic.Deleted */ +.highlight .ge { + font-style: italic; +} /* Generic.Emph */ +.highlight .gr { + color: #ff0000; +} /* Generic.Error */ +.highlight .gh { + color: #000080; + font-weight: bold; +} /* Generic.Heading */ +.highlight .gi { + color: #00a000; +} /* Generic.Inserted */ +.highlight .go { + color: #303030; +} /* Generic.Output */ +.highlight .gp { + color: #c65d09; + font-weight: bold; +} /* Generic.Prompt */ +.highlight .gs { + font-weight: bold; +} /* Generic.Strong */ +.highlight .gu { + color: #800080; + font-weight: bold; +} /* Generic.Subheading */ +.highlight .gt { + color: #0040d0; +} /* Generic.Traceback */ +.highlight .kc { + color: #007020; + font-weight: bold; +} /* Keyword.Constant */ +.highlight .kd { + color: #007020; + font-weight: bold; +} /* Keyword.Declaration */ +.highlight .kn { + color: #007020; + font-weight: bold; +} /* Keyword.Namespace */ +.highlight .kp { + color: #007020; +} /* Keyword.Pseudo */ +.highlight .kr { + color: #007020; + font-weight: bold; +} /* Keyword.Reserved */ +.highlight .kt { + color: #902000; +} /* Keyword.Type */ +.highlight .m { + color: #208050; +} /* Literal.Number */ +.highlight .s { + color: #4070a0; +} /* Literal.String */ +.highlight .na { + color: #4070a0; +} /* Name.Attribute */ +.highlight .nb { + color: #007020; +} /* Name.Builtin */ +.highlight .nc { + color: #0e84b5; + font-weight: bold; +} /* Name.Class */ +.highlight .no { + color: #60add5; +} /* Name.Constant */ +.highlight .nd { + color: #555555; + font-weight: bold; +} /* Name.Decorator */ +.highlight .ni { + color: #d55537; + font-weight: bold; +} /* Name.Entity */ +.highlight .ne { + color: #007020; +} /* Name.Exception */ +.highlight .nf { + color: #06287e; +} /* Name.Function */ +.highlight .nl { + color: #002070; + font-weight: bold; +} /* Name.Label */ +.highlight .nn { + color: #0e84b5; + font-weight: bold; +} /* Name.Namespace */ +.highlight .nt { + color: #062873; + font-weight: bold; +} /* Name.Tag */ +.highlight .nv { + color: #bb60d5; +} /* Name.Variable */ +.highlight .ow { + color: #007020; + font-weight: bold; +} /* Operator.Word */ +.highlight .w { + color: #bbbbbb; +} /* Text.Whitespace */ +.highlight .mf { + color: #208050; +} /* Literal.Number.Float */ +.highlight .mh { + color: #208050; +} /* Literal.Number.Hex */ +.highlight .mi { + color: #208050; +} /* Literal.Number.Integer */ +.highlight .mo { + color: #208050; +} /* Literal.Number.Oct */ +.highlight .sb { + color: #4070a0; +} /* Literal.String.Backtick */ +.highlight .sc { + color: #4070a0; +} /* Literal.String.Char */ +.highlight .sd { + color: #4070a0; + font-style: italic; +} /* Literal.String.Doc */ +.highlight .s2 { + color: #4070a0; +} /* Literal.String.Double */ +.highlight .se { + color: #4070a0; + font-weight: bold; +} /* Literal.String.Escape */ +.highlight .sh { + color: #4070a0; +} /* Literal.String.Heredoc */ +.highlight .si { + color: #70a0d0; + font-style: italic; +} /* Literal.String.Interpol */ +.highlight .sx { + color: #c65d09; +} /* Literal.String.Other */ +.highlight .sr { + color: #235388; +} /* Literal.String.Regex */ +.highlight .s1 { + color: #4070a0; +} /* Literal.String.Single */ +.highlight .ss { + color: #517918; +} /* Literal.String.Symbol */ +.highlight .bp { + color: #007020; +} /* Name.Builtin.Pseudo */ +.highlight .vc { + color: #bb60d5; +} /* Name.Variable.Class */ +.highlight .vg { + color: #bb60d5; +} /* Name.Variable.Global */ +.highlight .vi { + color: #bb60d5; +} /* Name.Variable.Instance */ +.highlight .il { + color: #208050; +} /* Literal.Number.Integer.Long */ diff --git a/base_geoengine/doc/build/_static/searchtools.js b/base_geoengine/doc/build/_static/searchtools.js new file mode 100644 index 000000000..83d7dac91 --- /dev/null +++ b/base_geoengine/doc/build/_static/searchtools.js @@ -0,0 +1,618 @@ +/* + * Searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function (text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function () { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = + (start > 0 ? "..." : "") + + $.trim(text.substr(start, 240)) + + (start + 240 - text.length ? "..." : ""); + var rv = $('
').text(excerpt); + $.each(hlwords, function () { + rv = rv.highlightText(this, "highlighted"); + }); + return rv; +}; + +/** + * Porter Stemmer + */ +var Stemmer = function () { + var step2list = { + ational: "ate", + tional: "tion", + enci: "ence", + anci: "ance", + izer: "ize", + bli: "ble", + alli: "al", + entli: "ent", + eli: "e", + ousli: "ous", + ization: "ize", + ation: "ate", + ator: "ate", + alism: "al", + iveness: "ive", + fulness: "ful", + ousness: "ous", + aliti: "al", + iviti: "ive", + biliti: "ble", + logi: "log", + }; + + var step3list = { + icate: "ic", + ative: "", + alize: "al", + iciti: "ic", + ical: "ic", + ful: "", + ness: "", + }; + + var c = "[^aeiou]"; // Consonant + var v = "[aeiouy]"; // Vowel + var C = c + "[^aeiouy]*"; // Consonant sequence + var V = v + "[aeiou]*"; // Vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // Vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0, 1); + if (firstch == "y") w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) w = w.replace(re, "$1$2"); + else if (re2.test(w)) w = w.replace(re2, "$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re, ""); + } + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) w += "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re, ""); + } else if (re4.test(w)) w += "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) w = stem; + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !re3.test(stem))) w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re, ""); + } + + // And turn initial Y back to y + if (firstch == "y") w = firstch.toLowerCase() + w.substr(1); + return w; + }; +}; + +/** + * Search Module + */ +var Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + init: function () { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex: function (url) { + $.ajax({ + type: "GET", + url: url, + data: null, + success: null, + dataType: "script", + cache: true, + }); + }, + + setIndex: function (index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex: function () { + return this._index !== null; + }, + + deferQuery: function (query) { + this._queued_query = query; + }, + + stopPulse: function () { + this._pulse_status = 0; + }, + + startPulse: function () { + if (this._pulse_status >= 0) return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ""; + for (var i = 0; i < Search._pulse_status; i++) dotString += "."; + Search.dots.text(dotString); + if (Search._pulse_status > -1) window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * Perform a search for something + */ + performSearch: function (query) { + // Create the required interface elements + this.out = $("#search-results"); + this.title = $("

" + _("Searching") + "

").appendTo(this.out); + this.dots = $("").appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $(' + + +
+
+ Rasters +
+
    +
  • +
    + +
- -
-
-
- Raster -
-
    -
  • -
    - -
    -
  • -
-
+ + +
+ Layers () +
From 5aad6092292e86e9915b7801a0d5bcd15f5ff031 Mon Sep 17 00:00:00 2001 From: Samuel Kouff Date: Tue, 11 Apr 2023 16:05:27 +0200 Subject: [PATCH 47/97] [ADD] base_geoengine: adding records panel --- .../geoengine_renderer.esm.js | 13 ++-- .../geoengine_renderer.scss | 1 - .../geoengine_renderer/geoengine_renderer.xml | 10 ++- .../records_panel/records_panel.esm.js | 59 ++++++++++++++ .../records_panel/records_panel.scss | 20 +++++ .../geoengine/records_panel/records_panel.xml | 76 +++++++++++++++++++ .../search_bar_records.esm.js | 21 +++++ .../search_bar_records/search_bar_records.xml | 27 +++++++ 8 files changed, 218 insertions(+), 9 deletions(-) create mode 100644 base_geoengine/static/src/js/views/geoengine/records_panel/records_panel.esm.js create mode 100644 base_geoengine/static/src/js/views/geoengine/records_panel/records_panel.scss create mode 100644 base_geoengine/static/src/js/views/geoengine/records_panel/records_panel.xml create mode 100644 base_geoengine/static/src/js/views/geoengine/records_panel/search_bar_records/search_bar_records.esm.js create mode 100644 base_geoengine/static/src/js/views/geoengine/records_panel/search_bar_records/search_bar_records.xml diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js index 90f544c5d..e5160d9d6 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js @@ -7,6 +7,7 @@ import {loadCSS, loadJS, templates} from "@web/core/assets"; import {GeoengineRecord} from "../geoengine_record/geoengine_record.esm"; import {LayersPanel} from "../layers_panel/layers_panel.esm"; +import {RecordsPanel} from "../records_panel/records_panel.esm"; import {rasterLayersStore} from "../../../raster_layers_store.esm"; import {vectorLayersStore} from "../../../vector_layers_store.esm"; import {useService} from "@web/core/utils/hooks"; @@ -59,9 +60,9 @@ export class GeoengineRenderer extends Component { onMounted(() => { // Retrives all vector layers in the store. - this.geometryFields = this.vectorLayersStore - .getVectors() - .map((layer) => layer.geo_field_id[1]); + this.geometryFields = this.vectorLayersStore.vectorsLayers.map( + (layer) => layer.geo_field_id[1] + ); this.vectorSources = []; this.renderMap(); @@ -107,7 +108,7 @@ export class GeoengineRenderer extends Component { new ol.layer.Group({ title: "Base maps", layers: this.createBackgroundLayers( - this.rasterLayersStore.getRasters() + this.rasterLayersStore.rastersLayers ), }), ], @@ -390,7 +391,7 @@ export class GeoengineRenderer extends Component { .getLayers() .getArray() .forEach((layer) => { - this.rasterLayersStore.getRasters().forEach((raster) => { + this.rasterLayersStore.rastersLayers.forEach((raster) => { if (raster.name === layer.get("title")) { layer.setVisible(raster.isVisible); } @@ -949,4 +950,4 @@ GeoengineRenderer.props = { data: {type: Object, optional: false}, openRecord: {type: Function, optional: false}, }; -GeoengineRenderer.components = {LayersPanel, GeoengineRecord}; +GeoengineRenderer.components = {LayersPanel, GeoengineRecord, RecordsPanel}; diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss index 0be824969..214502b68 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss @@ -6,7 +6,6 @@ .map_container { width: 100%; height: 100%; - padding: 0; } .view { diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml index 0d9e19066..29630e9e7 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml @@ -1,11 +1,17 @@ -
+
-
+
+
diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js index c6aa0c346..cde519140 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js @@ -985,7 +985,7 @@ export class GeoengineRenderer extends Component { openGroupsByDefault: true, domain: [], orderBy: [], - groupBy: {}, + groupBy: [], resModel: model, fields: fields, }; diff --git a/base_geoengine/tests/test_model.py b/base_geoengine/tests/test_model.py index 114212d0a..8afba32f9 100644 --- a/base_geoengine/tests/test_model.py +++ b/base_geoengine/tests/test_model.py @@ -1,10 +1,10 @@ # Copyright 2023 ACSONE SA/NV import geojson -from odoo_test_helper import FakeModelLoader from shapely import wkt from shapely.geometry import shape +from odoo.orm.model_classes import add_to_registry from odoo.tests.common import TransactionCase from ..fields import GeoPoint @@ -14,12 +14,24 @@ class TestModel(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() - cls.loader = FakeModelLoader(cls.env, cls.__module__) - cls.loader.backup_registry() - from .models import DummyZip, GeoModelTest, RetailMachine - cls.loader.update_registry((GeoModelTest, DummyZip, RetailMachine)) + add_to_registry(cls.registry, GeoModelTest) + cls.registry._setup_models__(cls.env.cr, ["geo.model.test"]) + cls.registry.init_models( + cls.env.cr, ["geo.model.test"], {"models_to_check": True} + ) + + add_to_registry(cls.registry, DummyZip) + cls.registry._setup_models__(cls.env.cr, ["dummy.zip"]) + cls.registry.init_models(cls.env.cr, ["dummy.zip"], {"models_to_check": True}) + + add_to_registry(cls.registry, RetailMachine) + cls.registry._setup_models__(cls.env.cr, ["retail.machine"]) + cls.registry.init_models( + cls.env.cr, ["retail.machine"], {"models_to_check": True} + ) + cls.geo_model = cls.env["geo.model.test"].create({}) cls.env["dummy.zip"].create( { @@ -145,7 +157,10 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - cls.loader.restore_registry() + cls.addClassCleanup(cls.registry.__delitem__, "geo.model.test") + cls.addClassCleanup(cls.registry.__delitem__, "retail.machine") + cls.addClassCleanup(cls.registry.__delitem__, "dummy.zip") + super().tearDownClass() def test_create_multipolygon_wkt_format(self):

rfkFL#zrjKrvHG-qg}uIeDg> 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